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 相关文章推荐
一段利用WSH获取登录时间的jscript代码
May 11 Javascript
Javascript 面向对象 继承
May 13 Javascript
JavaScript三元运算符的多种使用技巧
Apr 16 Javascript
基于jquery实现放大镜效果
Aug 17 Javascript
Js获取当前日期时间及格式化代码
Sep 17 Javascript
用jquery快速解决IE输入框不能输入的问题
Oct 04 Javascript
vue2.0构建单页应用最佳实战
Apr 01 Javascript
微信小程序 图片绝对定位(背景图片)
Apr 05 Javascript
vue代理和跨域问题的解决
Jul 18 Javascript
axios使用拦截器统一处理所有的http请求的方法
Nov 02 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
Oct 29 Javascript
ES11新增的这9个新特性,你都掌握了吗
Oct 15 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桌面中心(四) 数据显示
2007/03/11 PHP
基于PHP Socket配置以及实例的详细介绍
2013/06/13 PHP
PHP封装分页函数实现文本分页和数字分页
2014/10/23 PHP
PHP实现适用于自定义的验证码类
2016/06/15 PHP
一个简单的php MVC留言本实例代码(必看篇)
2016/09/22 PHP
Ajax和PHP正则表达式验证表单及验证码
2016/09/24 PHP
PHP实现可添加水印与生成缩略图的图片处理工具类
2018/01/16 PHP
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
JavaScript instanceof 的使用方法示例介绍
2013/10/23 Javascript
js二维数组排序的简单示例代码
2014/01/24 Javascript
JS集成fckeditor及判断内容是否为空的方法
2016/05/27 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
2016/10/26 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
2016/10/27 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
Bootstrap弹出框之自定义悬停框标题、内容和样式示例代码
2017/07/11 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
微信小程序背景音乐开发详解
2019/12/12 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
使用AutoJs实现微信抢红包的代码
2020/12/31 Javascript
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
使用Python写个小监控
2016/01/27 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
Python类和实例的属性机制原理详解
2020/03/21 Python
Python使用socketServer包搭建简易服务器过程详解
2020/06/12 Python
Python实现自动装机功能案例分析
2020/10/22 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
一个不错的HTML5 Canvas多层点击事件监听实例
2014/04/29 HTML / CSS
Abbott Lyon官网:女士手表、珠宝及配件
2020/12/26 全球购物
环保建议书100字
2014/05/14 职场文书
项目申报专员岗位职责
2014/07/09 职场文书
软环境建设心得体会
2014/09/09 职场文书
检讨书模板大全
2015/05/07 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
只需要100行Python代码就可以实现的贪吃蛇小游戏
2021/05/27 Python