JS实现横向跑马灯效果代码


Posted in Javascript onApril 20, 2020

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

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

    </ul>
  </div>

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

$.ajax({
      type:"post",
      dataType:"json",
      url:"${contextPath}/indexPage/getSyNoticeInfo",
      success:function(result){
        var totalStr = "";
        if(result.length>0){
          for(var i=0 ; i<result.length;i++){
            str = "<li style=\"list-style: none;display:inline-block;float:left;height:47px;padding-right:50px;line-height:47px;\">"+
             "<a style=\"color:white;\" class=\"sstzNoticeStyle\">"+result[i].peopleName+"</a>"+
             "</li>";
            totalStr +=str;
          }
        }
        $("#syNoticeUlNew").empty();
        $('#syNoticeUlNew').html(totalStr);
        syRunHorseLight();
      }
    });

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

.sstzNoticeStyle{
  color:white; font-size:16px;text-decoration:none;
}
.sstzNoticeStyle:hover{
  color:white; font-size:16px;text-decoration:none;
}

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

function syRunHorseLight() {
    if (syTimer != null) {
      clearInterval(syTimer);
    }
    var oUl = document.getElementById("syNoticeUlNew");
    if(oUl != null){
      oUl.innerHTML += oUl.innerHTML;
      oUl.innerHTML += oUl.innerHTML;
      oUl.innerHTML += oUl.innerHTML;
      var lis = oUl.getElementsByTagName('li');
      var lisTotalWidth = 0;
      var resetWidth = 0;
      for (var i = 0; i < lis.length; i++) {
        lisTotalWidth += lis[i].offsetWidth;
      }
      for (var i = 1; i <= lis.length / 4; i++) {
        resetWidth += lis[i].offsetWidth;
      }
      oUl.style.width = lisTotalWidth + 'px';
      var left = 0;
      syTimer = setInterval(function() {
        left -= 1;
        if (left <= -resetWidth) {
          left = 0;
        }
        oUl.style.left = left + 'px';
      }, 20)
      $("#syNoticeUlNew").hover(function() {
        clearInterval(syTimer);
      }, function() {
        clearInterval(syTimer);
        syTimer = setInterval(function() {
          left -= 1;
          if (left <= -resetWidth) {
            left = 0;
          }
          oUl.style.left = left + 'px';
        }, 20);
      })
    }
  }

跑马灯效果就此实现。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 字符 Escape,encodeURI,encodeURIComponent
Jul 09 Javascript
picChange 图片切换特效的函数代码
May 06 Javascript
jQuery学习笔记之Helloworld
Dec 22 Javascript
使用js+jquery实现无限极联动
May 23 Javascript
js兼容火狐显示上传图片预览效果的方法
May 21 Javascript
在AngularJS中如何使用谷歌地图把当前位置显示出来
Jan 25 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
Oct 21 Javascript
微信扫码支付零云插件版实例详解
Apr 26 Javascript
Node.js使用orm2进行update操作时关联字段无法修改的解决方法
Jun 13 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
Aug 18 Javascript
node.js 利用流实现读写同步,边读边写的方法
Sep 11 Javascript
Angular Excel 导入与导出的实现代码
Apr 17 Javascript
vue2.x数组劫持原理的实现
Apr 19 #Javascript
vue2.x 对象劫持的原理实现
Apr 19 #Javascript
基于js判断浏览器是否支持webGL
Apr 18 #Javascript
JavaScript对象字面量和构造函数原理与用法详解
Apr 18 #Javascript
javascript 内存模型实例详解
Apr 18 #Javascript
javascript-hashchange事件和历史状态管理实例分析
Apr 18 #Javascript
javascript使用Blob对象实现的下载文件操作示例
Apr 18 #Javascript
You might like
php实现文件下载简单示例(代码实现文件下载)
2014/03/10 PHP
PHP图形计数器程序显示网站用户浏览量
2016/07/20 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
利用javascript实现一些常用软件的下载导航
2009/08/03 Javascript
浅说js变量
2011/05/25 Javascript
JavaScript之Getters和Setters 平台支持等详细介绍
2012/12/07 Javascript
javascript中onclick(this)用法介绍
2013/04/19 Javascript
javascript中数组的sort()方法的使用介绍
2013/12/18 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
推荐阅读的js快速判断IE浏览器(兼容IE10与IE11)
2015/12/13 Javascript
轻松掌握JavaScript状态模式
2016/09/07 Javascript
JS实现六边形3D拖拽翻转效果的方法
2016/09/11 Javascript
关于webuploader插件使用过程遇到的小问题
2016/11/07 Javascript
JS中检测数据类型的几种方式及优缺点小结
2016/12/12 Javascript
Bootstrap标签页(Tab)插件使用方法
2017/03/21 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
vue绑定class与行间样式style详解
2017/08/16 Javascript
JS获取并处理php数组的方法实例分析
2018/09/04 Javascript
jQuery动态操作表单示例【基于table表格】
2018/12/06 jQuery
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
[50:02]完美世界DOTA2联赛循环赛 Magma vs IO BO2第一场 11.01
2020/11/02 DOTA
Python中几个比较常见的名词解释
2015/07/04 Python
python微信公众号之关键词自动回复
2018/06/15 Python
使用Python实现NBA球员数据查询小程序功能
2020/11/09 Python
关于iframe跨域使用postMessage的实现
2019/10/29 HTML / CSS
Speedo澳大利亚官网:全球领先游泳品牌
2018/02/04 全球购物
优秀志愿者事迹材料
2014/02/03 职场文书
能源工程专业应届生求职信
2014/03/01 职场文书
企业群众路线教育实践活动心得体会
2014/11/03 职场文书
2015年实习班主任工作总结
2015/04/23 职场文书
军训后的感想
2015/08/07 职场文书
大学生社会实践感想
2015/08/11 职场文书
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python
php 文件上传至OSS及删除远程阿里云OSS文件
2021/07/04 PHP
详解Python中__new__方法的作用
2022/03/31 Python
分享几个实用的CSS代码块
2022/06/10 HTML / CSS