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 相关文章推荐
jquery+json实现的搜索加分页效果
Mar 31 Javascript
js取得html iframe中的元素和变量值
Jun 30 Javascript
JS设置cookie、读取cookie、删除cookie
Apr 17 Javascript
JavaScript学习笔记之数组求和方法
Mar 23 Javascript
Atitit.js的键盘按键事件捆绑and事件调度
Apr 01 Javascript
JS在一定时间内跳转页面及各种刷新页面的实现方法
May 26 Javascript
Javascript中数组去重与拍平的方法示例
Feb 03 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
Aug 01 Javascript
nuxt踩坑之Vuex状态树的模块方式使用详解
Sep 06 Javascript
bootstrap table实现iview固定列的效果实例代码详解
Sep 30 Javascript
记一次用ts+vuecli4重构项目的实现
May 21 Javascript
JavaScript点击按钮生成4位随机验证码
Jan 28 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支持多种格式图片上传(支持jpg、png、gif)
2011/11/03 PHP
完美利用Yii2微信后台开发的系列总结
2016/07/18 PHP
总结对比php中的多种序列化
2016/08/28 PHP
可以文本显示的公告栏的js代码
2007/03/11 Javascript
DOMAssitant最新版 DOMAssistant 2.5发布
2007/12/25 Javascript
jquery 淡入淡出效果的简单实现
2014/02/07 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
jQuery 遍历函数详解
2015/07/05 Javascript
jQuery实现的鼠标滑过弹出放大图片特效
2016/01/08 Javascript
nodejs 的 session 简单使用
2016/06/06 NodeJs
第一篇初识bootstrap
2016/06/21 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
2017/02/07 Javascript
微信小程序 使用腾讯地图SDK详解及实现步骤
2017/02/28 Javascript
NodeJS基础API搭建服务器详细过程记录
2017/04/01 NodeJs
js实现以最简单的方式将数组元素添加到对象中的方法
2017/12/20 Javascript
Vue实现自定义下拉菜单功能
2018/07/16 Javascript
详解Angular6学习笔记之主从组件
2018/09/05 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
详解微信小程序网络请求接口封装实例
2019/05/02 Javascript
JavaScript实现随机点名程序
2020/03/25 Javascript
python避免死锁方法实例分析
2015/06/04 Python
Python栈类实例分析
2015/06/15 Python
浅析Python中signal包的使用
2015/11/13 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
Python3中详解fabfile的编写
2018/06/24 Python
利用Pycharm断点调试Python程序的方法
2018/11/29 Python
Python Numpy计算各类距离的方法
2019/07/05 Python
《望庐山瀑布》教学反思
2014/04/22 职场文书
红领巾心向党演讲稿
2014/09/10 职场文书
五年级学生评语大全
2014/12/26 职场文书
中学生自我评价范文
2015/03/03 职场文书
《小摄影师》教学反思
2016/02/18 职场文书
公文写作:教你写“建议书”
2019/05/07 职场文书
公文写作:工伤事故分析报告怎么写?
2019/11/05 职场文书
springboot使用Redis作缓存使用入门教程
2021/07/25 Redis