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 相关文章推荐
javascript之AJAX框架使用说明
Apr 24 Javascript
判断用户的在线状态 onbeforeunload事件
Mar 05 Javascript
jquery ajax中使用jsonp的限制解决方法
Nov 22 Javascript
Node.js中npm常用命令大全
Jun 09 Javascript
强大Vue.js组件浅析
Sep 12 Javascript
$.browser.msie 为空或不是对象问题的多种解决方法
Mar 19 Javascript
详解angularjs的数组传参方式的简单实现
Jul 28 Javascript
详解AngularJS跨页面传值(ui-router)
Aug 23 Javascript
Vue 兄弟组件通信的方法(不使用Vuex)
Oct 26 Javascript
详解用Node.js写一个简单的命令行工具
Mar 01 Javascript
深入浅析nuxt.js基于ssh的vue通用框架
May 21 Javascript
vue实现两个区域滚动条同步滚动
Dec 13 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 文件上传代码(限制jpg文件)
2010/01/05 PHP
PHP strtotime函数用法、实现原理和源码分析
2015/02/04 PHP
PHP  Yii清理缓存的实现方法
2016/11/10 PHP
thinkphp分页集成实例
2017/07/24 PHP
javascript 密码强弱度检测万能插件
2009/02/25 Javascript
Jquery 基础学习笔记
2009/05/29 Javascript
使用node.js半年来总结的 10 条经验
2014/08/18 Javascript
JS函数的定义与调用方法推荐
2016/05/12 Javascript
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
AngularJS实现的获取焦点及失去焦点时的表单验证功能示例
2017/10/25 Javascript
AngularJs 终极购物车(实例讲解)
2017/11/08 Javascript
浅谈JavaScript中this的指向问题
2020/07/28 Javascript
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
[54:26]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第一场 12.10
2020/12/12 DOTA
深入浅析ImageMagick命令执行漏洞
2016/10/11 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
Python实现统计英文文章词频的方法分析
2019/01/28 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
python3中编码获取网页的实例方法
2020/11/16 Python
Linux系统下升级pip的完整步骤
2021/01/31 Python
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
String、StringBuffer、StringBuilder有区别
2015/09/18 面试题
美德好少年主要事迹
2014/01/29 职场文书
工商治理实习生的自我评价分享
2014/02/20 职场文书
护理助产毕业生的求职信
2014/03/02 职场文书
服装设计专业毕业生求职信
2014/04/09 职场文书
学习雷锋寄语大全
2014/04/11 职场文书
租车协议书范本
2014/04/22 职场文书
运动会的口号
2014/06/09 职场文书
授权委托书样本及填写说明
2014/09/19 职场文书
导游词300字
2015/02/13 职场文书
2015年人力资源工作总结
2015/04/08 职场文书
运动会闭幕式通讯稿
2015/07/18 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
nginx proxy_cache 缓存配置详解
2021/03/31 Servers
零基础学java之方法的定义与调用详解
2022/04/10 Java/Android