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 相关文章推荐
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
Nov 28 Javascript
Js nodeType 属性全面解析
Nov 14 Javascript
javascript使用avalon绑定实现checkbox全选
May 06 Javascript
JavaScript中利用jQuery绑定事件的几种方式小结
Mar 06 Javascript
JavaScript继承学习笔记【新手必看】
May 10 Javascript
BootStrap学习系列之Bootstrap Typeahead 组件实现百度下拉效果(续)
Jul 07 Javascript
JS实现放大、缩小及拖拽图片的方法【可兼容IE、火狐】
Aug 23 Javascript
Angularjs中ng-repeat-start与ng-repeat-end的用法实例介绍
Dec 31 Javascript
AngularJS双向绑定和依赖反转实例详解
Apr 15 Javascript
Vue全家桶实践项目总结(推荐)
Nov 04 Javascript
js实现课堂随机点名系统
Nov 21 Javascript
一篇文章弄清楚Ajax请求的五个步骤
Mar 17 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将图片文件转换成二进制输出的方法
2015/06/10 PHP
php fseek函数读取大文件两种方法
2016/10/12 PHP
php实现通过soap调用.Net的WebService asmx文件
2017/02/27 PHP
详解JS 比较两个Json对象的值是否相等的实例
2013/11/20 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
node.js中的http.createClient方法使用说明
2014/12/15 Javascript
Javascript基础教程之while语句
2015/01/18 Javascript
JS原型链怎么理解
2016/06/27 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
2017/06/01 Javascript
浅谈Webpack自动化构建实践指南
2017/12/18 Javascript
详解vue通过NGINX部署在子目录或者二级目录实践
2018/09/03 Javascript
小程序登录态管理的方法示例
2018/11/13 Javascript
微信小程序获取用户信息的两种方法wx.getUserInfo与open-data实例分析
2019/05/03 Javascript
Vue编程式跳转的实例代码详解
2019/07/10 Javascript
详解element-ui中表单验证的三种方式
2019/09/18 Javascript
redux处理异步action解决方案
2020/03/22 Javascript
Vue 中获取当前时间并实时刷新的实现代码
2020/05/12 Javascript
Python下的twisted框架入门指引
2015/04/15 Python
在Python中使用HTMLParser解析HTML的教程
2015/04/29 Python
在Django的视图中使用数据库查询的方法
2015/07/16 Python
python机器学习理论与实战(一)K近邻法
2021/01/28 Python
对python 数据处理中的LabelEncoder 和 OneHotEncoder详解
2018/07/11 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
python程序运行进程、使用时间、剩余时间显示功能的实现代码
2019/07/11 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
Python 变量的创建过程详解
2019/09/02 Python
Python实现基于socket的udp传输与接收功能详解
2019/11/15 Python
python实现三种随机请求头方式
2021/01/05 Python
理肤泉英国官网:La Roche-Posay英国
2019/01/14 全球购物
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
2014/11/09 面试题
教师网络培训感言
2014/03/09 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
放弃遗产继承公证书
2015/01/26 职场文书
2016春季田径运动会广播稿
2015/12/21 职场文书
Python使用random模块实现掷骰子游戏的示例代码
2021/04/29 Python