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 相关文章推荐
Ext 今日学习总结
Sep 19 Javascript
javascript 基础篇1 什么是js 建立第一个js程序
Mar 14 Javascript
zTree插件之单选下拉菜单实例代码
Nov 07 Javascript
js使用eval解析json实例与注意事项分享
Jan 18 Javascript
js 模式窗口(模式对话框和非模式对话框)的使用介绍
Jul 17 Javascript
深入理解JavaScript系列(28):设计模式之工厂模式详解
Mar 03 Javascript
Jquery使用css方法改变样式实例
May 18 Javascript
jQuery中$.ajax()和$.getJson()同步处理详解
Aug 12 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
Mar 08 Javascript
vue.js配合$.post从后台获取数据简单demo分享
Aug 11 Javascript
详解element-ui中form验证杂记
Mar 04 Javascript
解决Antd 里面的select 选择框联动触发的问题
Oct 24 Javascript
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程序之die调试法 快速解决错误
2009/09/17 PHP
php实现计数器方法小结
2015/01/05 PHP
改写一个简单的菜单 弹性大小
2010/12/02 Javascript
JavaScript中变量提升 Hoisting
2012/07/03 Javascript
jQuery设置和获取HTML、文本和值示例
2014/07/08 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
jQuery animate easing使用方法图文详解
2016/06/17 Javascript
Ionic2系列之使用DeepLinker实现指定页面URL
2016/11/21 Javascript
svg动画之动态描边效果
2017/02/22 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
Webpack常见静态资源处理-模块加载器(Loaders)+ExtractTextPlugin插件
2017/06/29 Javascript
实例教学如何写vue插件
2017/11/30 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
JavaScript中的 new 命令
2019/05/22 Javascript
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
JavaScript享元模式原理与用法实例详解
2020/03/09 Javascript
[12:36]《DOTA2》国服注册与激活指南全攻略
2013/04/28 DOTA
Python使用cookielib模块操作cookie的实例教程
2016/07/12 Python
使用浏览器访问python写的服务器程序
2019/10/10 Python
python中property和setter装饰器用法
2019/12/19 Python
Android面试题附答案
2014/12/08 面试题
Linux如何为某个操作添加别名
2015/02/05 面试题
临床医学应届生求职信
2013/11/06 职场文书
副处级干部考察材料
2014/05/17 职场文书
优秀班集体先进事迹材料
2014/05/28 职场文书
经典禁毒标语
2014/06/16 职场文书
超市店庆活动方案
2014/08/31 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
北京离婚协议书范文2014
2014/09/29 职场文书
维稳工作情况汇报
2014/10/27 职场文书
2014年实习班主任工作总结
2014/11/08 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书
读后感怎么写?书写读后感的基本技巧!
2019/12/10 职场文书
SQL Server 数据库实验课第五周——常用查询条件
2021/04/05 SQL Server