js实现滚动条自动滚动


Posted in Javascript onDecember 13, 2020

本文实例为大家分享了js实现滚动条自动滚动的具体代码,供大家参考,具体内容如下

效果类似于直播网站的评论,会一条接着一条向上 go out ;

js部分很简单:通过控制scrollTop的值来实现自动滚动效果;

很重要两点:   

1、scrollTop的值不可以加单位,谨记!

 2、网页缩放比例会影响效果实现(下面具体说);

scrollTop需要注意的三点:

1、如果这个元素没有被溢出,scrollTop为0;

2、设置的scrollTop值小于0,则scrollTop的值为0

3、如果设置scrollTop的值超出了这个容器滚动的值,则scrollTop的值为容器最大值

js部分:

(function () {
  // 获取父盒子(肯定有滚动条)
  var parent = document.getElementById('parent');
  // 获取子盒子(高度肯定比父盒子大)
  var child1 = document.getElementById('child1');
  var child2 = document.getElementById('child2');
  // 第一个子盒子内容复制一遍给第二个子盒子,产生循环视觉,辅助作用
  // 可以注释下这条代码,看会出现什么情况
  child2.innerHTML = child1.innerHTML;
  // 设置定时器,时间即为滚动速度
  setInterval(function () {
    if(parent.scrollTop >= child1.scrollHeight) {
      parent.scrollTop = 0;
    } else {
      // 如果存在网页缩放,很有可能没有效果,但是else部分的代码会执行
      // 原因:刚才讲到的scrollTop三个注意中标黄的一条
      // 设置scrollTop的值小于0,即scrollTop被设为0
      // 可以缩放跑一下,然后不刷新的状态下恢复百分之百跑一下,再缩放,打印scrollTop的值
      // 你会发现正常尺寸执行时打印的第一个值不是加法,而是减法,即scrollTop++增加负值
      // 这样的话就对应上了scrollTop的注意点了,增加的值小于0,就被设为0
      parent.scrollTop++;
    }
  }, 20);
})()

下面是完整demo,拉走直接看效果

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8" />
  <title>autoScroll</title>
</head>
<style>
  .parent {
    width: 300px;
    height: 200px;
    margin: 0 auto;
    background: #242424;
    overflow-y: scroll;
  }
  /*设置的子盒子高度大于父盒子,产生溢出效果*/
  .child {
    height: auto;
  }
  .child li {
    height: 50px;
    margin: 2px 0;
    background: #009678;
  }
</style>
<body>
  <div id="parent" class="parent">
    <div id="child1" class="child">
      <li>1</li>
      <li>2</li>
      <li>3</li>
      <li>4</li>
      <li>5</li>
    </div>
    <div id="child2" class="child"></div>
  </div>
  <script type="text/javascript">
    (function () {
      var parent = document.getElementById('parent');
      var child1 = document.getElementById('child1');
      var child2 = document.getElementById('child2');
      child2.innerHTML = child1.innerHTML;
      setInterval(function () {
        if(parent.scrollTop >= child1.scrollHeight) {
          parent.scrollTop = 0;
        } else {
          parent.scrollTop++;
        }
      }, 20);
    })()
  </script>
</body>
</html>

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

Javascript 相关文章推荐
Jquery实现仿新浪微博获取文本框能输入的字数代码
Feb 22 Javascript
深入理解javaScript中的事件驱动
May 21 Javascript
javascript引用赋值(地址传值)用法实例
Jan 13 Javascript
JS实现向表格行添加新单元格的方法
Mar 30 Javascript
jquery实现弹出层登录和全屏层注册特效
Aug 28 Javascript
浅析JavaScript中命名空间namespace模式
Jun 22 Javascript
浅谈JS 数字和字符串之间相互转化的纠纷
Oct 20 Javascript
Vue用v-for给src属性赋值的方法
Mar 03 Javascript
d3.js实现自定义多y轴折线图的示例代码
May 30 Javascript
一个小时快速搭建微信小程序的方法步骤
Apr 15 Javascript
arctext.js实现文字平滑弯曲弧形效果的插件
May 13 Javascript
Vue的过滤器你真了解吗
Feb 24 Vue.js
vue实现两个区域滚动条同步滚动
Dec 13 #Vue.js
vue实现滚动鼠标滚轮切换页面
Dec 13 #Vue.js
js实现简单的轮播图效果
Dec 13 #Javascript
jquery实现淡入淡出轮播图效果
Dec 13 #jQuery
JavaScript实现移动小精灵的案例代码
Dec 12 #Javascript
详解vue中使用transition和animation的实例代码
Dec 12 #Vue.js
javascript中call,apply,bind的区别详解
Dec 11 #Javascript
You might like
谈谈新手如何学习PHP
2006/12/23 PHP
基于php设计模式中单例模式的应用分析
2013/05/15 PHP
保存到桌面、设为桌面且带图标的PHP代码
2013/11/19 PHP
PHP编程中的__clone()方法使用详解
2015/11/27 PHP
Zend Framework框架Smarty扩展实现方法
2016/03/22 PHP
Thinkphp5行为使用方法汇总
2017/12/21 PHP
document.documentElement &amp;&amp; document.documentElement.scrollTop
2007/12/01 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
js操作IE浏览器弹出浏览文件夹可以返回目录路径
2014/07/14 Javascript
jQuery实现瀑布流的取巧做法分享
2015/01/12 Javascript
JavaScript新增样式规则(推荐)
2016/07/19 Javascript
Highcharts入门之简介
2016/08/02 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
2016/09/29 Javascript
详解网站中图片日常使用以及优化手法
2017/01/09 Javascript
JS实现的五级联动菜单效果完整实例
2017/02/23 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
详解vue-router 动态路由下子页面多页共活的解决方案
2019/12/22 Javascript
Vue中axios拦截器如何单独配置token
2019/12/27 Javascript
JavaScript闭包原理与用法学习笔记
2020/05/29 Javascript
[01:34]完美“圣”典宣传片震撼发布,12.17与你不见不散
2016/12/16 DOTA
[59:15]EG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/29 DOTA
Python最基本的数据类型以及对元组的介绍
2015/04/14 Python
python 获取当天每个准点时间戳的实例
2018/05/22 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
三星美国官网:Samsung美国
2017/02/06 全球购物
家居设计专业个人自荐信范文
2013/11/26 职场文书
社会公德演讲稿
2014/05/20 职场文书
县级文明单位申报材料
2014/05/23 职场文书
地球一小时宣传标语
2014/06/24 职场文书
干部对照检查材料范文
2014/08/26 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
退伍军人感言
2015/08/01 职场文书
vue3.0 数字翻牌组件的使用方法详解
2022/04/20 Vue.js
2022微信温控新功能上线
2022/05/09 数码科技