原生JS实现列表内容自动向上滚动效果

 更新时间:2019年05月22日 11:30:31   作者:tyouu  
这篇文章主要介绍了原生JS实现列表内容自动向上滚动效果,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

效果展示

(鼠标移入,滚动停止;鼠标移出,滚动继续)

实现原理

  1. html结构:核心是ul > li,ul外层包裹着div。因为想要内容循环滚动无缝衔接,所以在原有ul后面还要有一个一样内容的ul。如下图:

     (红色边框为可视区域div,此处为了方便查看效果去除overflow:hidden;)

  2. 样式方面:由于要滚动,所以必须2个ul的高度 > 外层可视div高度,且div必须设置overflow:hidden;

代码实现

HTML:

 <div id="review_box">
  <ul id="comment1">
   <li>第一条</li>
   <li>第二条</li>
   <li>第三条</li>
   <li>第四条</li>
   <li>第五条</li>
   <li>第六条</li>
  </ul>
  <ul id="comment2"></ul>
 </div>

CSS:

 * {
  margin: 0;
  padding: 0;
 }
 div {
  width: 100px;
  height: 63px; /* 必须 */
  overflow: hidden;/* 必须 */
  margin: 50px auto;
  border: 1px solid red;
  text-align: center;
 }
 ul {
  list-style: none;
 }

JavaScript:

window.onload = roll(50);
 function roll(t) {
  var ul1 = document.getElementById("comment1");
  var ul2 = document.getElementById("comment2");
  var ulbox = document.getElementById("review_box");
  ul2.innerHTML = ul1.innerHTML;
  ulbox.scrollTop = 0; // 开始无滚动时设为0
  var timer = setInterval(rollStart, t); // 设置定时器,参数t用在这为间隔时间(单位毫秒),参数t越小,滚动速度越快
  // 鼠标移入div时暂停滚动
  ulbox.onmouseover = function () {
   clearInterval(timer);
  }
  // 鼠标移出div后继续滚动
  ulbox.onmouseout = function () {
   timer = setInterval(rollStart, t);
  }
 }
 // 开始滚动函数
 function rollStart() {
  // 上面声明的DOM对象为局部对象需要再次声明
  var ul1 = document.getElementById("comment1");
  var ul2 = document.getElementById("comment2");
  var ulbox = document.getElementById("review_box");
  // 正常滚动不断给scrollTop的值+1,当滚动高度大于列表内容高度时恢复为0
  if (ulbox.scrollTop >= ul1.scrollHeight) {
   ulbox.scrollTop = 0;
  } else {
   ulbox.scrollTop++;
  }
 }

总结

以上所述是小编给大家介绍的原生JS实现列表内容自动向上滚动效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

  • js换图片效果可进行定时操作

    js换图片效果可进行定时操作

    换图片效果想必大家都有见到过吧,但是定时换图片,貌似就很少见了,下面本文通过一个示例为大家详细介绍下
    2014-06-06
  • 对于防止按钮重复点击的尝试详解

    对于防止按钮重复点击的尝试详解

    这篇文章主要介绍了对于防止按钮重复点击的尝试,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • javascript原型模式用法实例详解

    javascript原型模式用法实例详解

    这篇文章主要介绍了javascript原型模式用法,以实例形式较为详细的分析了javascript原型模式的原理与使用技巧,需要的朋友可以参考下
    2015-06-06
  • JavaScript 评测代码运行速度的案例代码

    JavaScript 评测代码运行速度的案例代码

    在 JavaScript 中,可以使用 performance.now() API 来评测代码的运行速度。该 API 返回当前页面的高精度时间戳,您可以在代码执行前后调用它来计算代码执行所需的时间,这篇文章主要介绍了JavaScript 评测代码运行速度,需要的朋友可以参考下
    2023-02-02
  • js将日期格式转换为YYYY-MM-DD HH:MM:SS

    js将日期格式转换为YYYY-MM-DD HH:MM:SS

    这篇文章主要介绍了js将日期格式转换为YYYY-MM-DD HH:MM:SS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • js处理表格对table进行修饰

    js处理表格对table进行修饰

    这篇文章主要介绍了js处理表格对table进行修饰的一些小技巧,需要的朋友可以参考下
    2014-05-05
  • 带你彻底搞懂JavaScript的事件流

    带你彻底搞懂JavaScript的事件流

    这篇文章主要为大家详细介绍了JavaScript的事件流,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • javascript window.onerror事件学习新收获

    javascript window.onerror事件学习新收获

    javascript window.onerror事件学习新收获...
    2007-11-11
  • js实现淡入淡出轮播切换功能

    js实现淡入淡出轮播切换功能

    本文主要分享了javascript实现淡入淡出轮播切换功能的示例代码。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • javascript时间与时间戳互转多种方式

    javascript时间与时间戳互转多种方式

    javascript获取时间、时间戳等,最核心的就是利用Date关键词去获取,时间戳的获取方式整理了5种方法,后4种是利用new Date()实例化对象来获取当前时间,再对当前获取的时间再进一步处理获取时间戳,本文给大家介绍的非常详细,需要的朋友参考下吧
    2023-11-11

最新评论