首先我们需要一个html代码的框架如下:

  1. <div style="position: absolute; top: 0px; left: 168px; width: 100%; margin-left: auto; margin-right: auto; height: 47px; border: 0px solid red; overflow: hidden;">
  2. <ul id="syNoticeUlNew" style="margin: 0px;left:0; top:0;margin-bottom:0px;width:100%;height:47px;position:absolute;">
  3.  
  4. </ul>
  5. </div>

我们的目的是实现ul中的内容进行横向的一点一点滚动。ul中的内容应该是动态的。于是应该发送ajax来进行内容的获取拼接。

  1. $.ajax({
  2. type:"post",
  3. dataType:"json",
  4. url:"${contextPath}/indexPage/getSyNoticeInfo",
  5. success:function(result){
  6. var totalStr = "";
  7. if(result.length>0){
  8. for(var i=0 ; i<result.length;i++){
  9. str = "<li style=\"list-style: none;display:inline-block;float:left;height:47px;padding-right:50px;line-height:47px;\">"+
  10. "<a style=\"color:white;\" class=\"sstzNoticeStyle\">"+result[i].peopleName+"</a>"+
  11. "</li>";
  12. totalStr +=str;
  13. }
  14. }
  15. $("#syNoticeUlNew").empty();
  16. $('#syNoticeUlNew').html(totalStr);
  17. syRunHorseLight();
  18. }
  19. });

拼接li时候有个class为sstzNoticeStyle。其样式如下:

  1. .sstzNoticeStyle{
  2. color:white; font-size:16px;text-decoration:none;
  3. }
  4. .sstzNoticeStyle:hover{
  5. color:white; font-size:16px;text-decoration:none;
  6. }

ajax调用syRunHorseLight函数,函数如下:

  1. function syRunHorseLight() {
  2. if (syTimer != null) {
  3. clearInterval(syTimer);
  4. }
  5. var oUl = document.getElementById("syNoticeUlNew");
  6. if(oUl != null){
  7. oUl.innerHTML += oUl.innerHTML;
  8. oUl.innerHTML += oUl.innerHTML;
  9. oUl.innerHTML += oUl.innerHTML;
  10. var lis = oUl.getElementsByTagName('li');
  11. var lisTotalWidth = 0;
  12. var resetWidth = 0;
  13. for (var i = 0; i < lis.length; i++) {
  14. lisTotalWidth += lis[i].offsetWidth;
  15. }
  16. for (var i = 1; i <= lis.length / 4; i++) {
  17. resetWidth += lis[i].offsetWidth;
  18. }
  19. oUl.style.width = lisTotalWidth + 'px';
  20. var left = 0;
  21. syTimer = setInterval(function() {
  22. left -= 1;
  23. if (left <= -resetWidth) {
  24. left = 0;
  25. }
  26. oUl.style.left = left + 'px';
  27. }, 20)
  28. $("#syNoticeUlNew").hover(function() {
  29. clearInterval(syTimer);
  30. }, function() {
  31. clearInterval(syTimer);
  32. syTimer = setInterval(function() {
  33. left -= 1;
  34. if (left <= -resetWidth) {
  35. left = 0;
  36. }
  37. oUl.style.left = left + 'px';
  38. }, 20);
  39. })
  40. }
  41. }

跑马灯效果就此实现。

js实现横向跑马灯效果的更多相关文章

  1. JS实现跑马灯效果(向左,向上)

    <html> <head> <title>JS实现跑马灯效果</title> <style> * { font-size:12px; fon ...

  2. 微信小程序跑马灯效果--基于CSS3 animation 及 基于JS

    如果本文对你有用,请爱心点个赞,提高排名,帮助更多的人.谢谢大家!❤ 如果解决不了,可以在文末进群交流. 基于CSS3主要代码实现 效果图: 视图模板wxml中: <view class=&qu ...

  3. JS写一个列表跑马灯效果--基于touchslide.js

    先放上效果图: 类似于这样的,在列表中循环添加背景样式的跑马灯效果. 准备引入JS插件: <script type="text/javascript" src="x ...

  4. JS实现跑马灯效果(鼠标滑入可暂停,离开继续跑)

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  5. TextView跑马灯效果

    转载:http://www.2cto.com/kf/201409/330658.html 一.只想让TextView显示一行,但是文字超过TextView的长度怎么办?在开头显示省略号 android ...

  6. Vue学习笔记四:跑马灯效果

    目录 跑马灯原理 HTML 箭头函数 计时器 跑马灯效果 跑马灯原理 先讲讲跑马灯的原理,就是一行字,会滚动,思路是这样的,使用substring方法,一个获取字符串的第一个字,一个获取1后面所有的字 ...

  7. vue实现跑马灯效果

    vue实现跑马灯效果为阿中哥哥应援 1.效果图 2.实现代码 <!DOCTYPE html> <html lang="en"> <head> & ...

  8. marquee标签实现跑马灯效果--无缝滚动

    今天在做微信端的大转盘抽奖时,想把所有用户的抽奖记录做成无缝滚动的效果,无奈我的js功底太差,一时想不出实现的方法,便百度各种相似效果.但无意中发现了一个html标签——<marquee> ...

  9. 黑马vue---10-11、Vue实现跑马灯效果

    黑马vue---10-11.Vue实现跑马灯效果 一.总结 一句话总结: 1. 给 [浪起来] 按钮,绑定一个点击事件   v-on   @ 2. 在按钮的事件处理函数中,写相关的业务逻辑代码:拿到 ...

随机推荐

  1. 配置vscode同步大神玺哥的配置

    1.应用商店下载settings  sync 2.三键 ctrl + shift + p   对话框中输入sync:点击重置 3.ctrl + shift + p  点击下载 4.然后会自动的调整到g ...

  2. Python - Python2与Python3的区别、转换与兼容

    区别 Python2.x与Python3.x版本区别:http://www.runoob.com/python/python-2x-3x.html 示例解读Python2和Python3之间的主要差异 ...

  3. cassandra 3.x官方文档(7)---内部原理之如何读写数据

    写在前面 cassandra3.x官方文档的非官方翻译.翻译内容水平全依赖本人英文水平和对cassandra的理解.所以强烈建议阅读英文版cassandra 3.x 官方文档.此文档一半是翻译,一半是 ...

  4. jupyter-notebook后home页面空白问题

    jupyter-notebook后home页面空白问题 解决方案1   更换默认的浏览器,选择谷歌浏览器,很多360打不开的页面,更换谷歌后都能有效解决,并且确保是最新版本的google浏览器. 解决 ...

  5. Python内置函数(58)——slice

    英文文档: class slice(stop) class slice(start, stop[, step]) Return a slice object representing the set ...

  6. 「造个轮子」——cicada 源码分析

    前言 两天前写了文章<「造个轮子」--cicada(轻量级 WEB 框架)> 向大家介绍了 cicada 之后收到很多反馈,也有许多不错的建议. 同时在 GitHub 也收获了 80 几颗 ...

  7. Javascript基本类型回顾

    本文是学习和总结ECMAScript5.1规范形成的.是对规范中所提及的Javascript类型进行剖析后的个人观点的表达(如有Bug望各位道友指正).主要是各类型的实例方法,不包含任务构造函数的方法 ...

  8. Zara带你快速入门WPF(2)---布局篇

    一.章节目标 这几章节我们会创建一个完整的Window程序,包括使用DataGrid空间,数据绑定是把.NET类中的数据提供给用户界面的一个重要概念,还允许修改数据,包括.NET4.5新增的INoti ...

  9. Unable to build: the file dx.jar was not loaded from the SDK folder

    eclipse 运行 android 时失败了,提示 Unable to build: the file dx.jar was not loaded from the SDK folder! 解决办法 ...

  10. 通过Python、BeautifulSoup爬取Gitee热门开源项目

    一.安装 1.通过requests 对响应内容进行处理,requests.get()方法会返回一个Response对象 pip install requests 2.beautifulSoup对网页解 ...