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 相关文章推荐
神奇的代码 通杀各种网站-可随意修改复制页面内容
Jul 17 Javascript
jquery的$(document).ready()和onload的加载顺序
May 26 Javascript
加载 Javascript 最佳实践
Oct 30 Javascript
JS实现的省份级联实例代码
Jun 24 Javascript
高效率JavaScript编写技巧整理
Aug 23 Javascript
优化Jquery,提升网页加载速度
Nov 14 Javascript
JSON+HTML实现国家省市联动选择效果
May 18 Javascript
jquery幻灯片插件bxslider样式改进实例
Oct 15 Javascript
基于bootstrap实现广告轮播带图片和文字效果
Jul 22 Javascript
JavaScript字符集编码与解码详谈
Feb 02 Javascript
JS如何实现动态添加的元素绑定事件
Nov 12 Javascript
原生JavaScript实现刮刮乐
Sep 29 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开发文件系统实例讲解
2006/10/09 PHP
深入理解PHP原理之Session Gc的一个小概率Notice
2011/04/12 PHP
thinkphp3.x中cookie方法的用法分析
2016/05/19 PHP
IE中createElement需要注意的一个问题
2010/07/13 Javascript
通过jquery的$.getJSON做一个跨域ajax请求试验
2011/05/03 Javascript
js出生日期 年月日级联菜单示例代码
2014/01/10 Javascript
jQuery层级选择器用法分析
2015/02/10 Javascript
js实现时间显示几天前、几小时前或者几分钟前的方法集锦
2015/05/29 Javascript
js实现可键盘控制的简单抽奖程序
2016/07/13 Javascript
javascript验证手机号和实现星号(*)代替实例
2016/08/16 Javascript
AngularJS中关于ng-class指令的几种实现方式详解
2016/09/17 Javascript
Boostrap实现的登录界面实例代码
2016/10/09 Javascript
Angularjs之filter过滤器(推荐)
2016/11/27 Javascript
jQuery获取单选按钮radio选中值与去除所有radio选中状态的方法
2017/05/20 jQuery
详解用Node.js实现Restful风格webservice
2017/09/29 Javascript
如何封装了一个vue移动端下拉加载下一页数据的组件
2019/01/06 Javascript
详解滑动穿透(锁body)终极探索
2019/04/16 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
Python Requests 基础入门
2016/04/07 Python
Python入门之三角函数全解【收藏】
2017/11/08 Python
Python中使用支持向量机SVM实践
2017/12/27 Python
对python-3-print重定向输出的几种方法总结
2018/05/11 Python
Python自动化运维之Ansible定义主机与组规则操作详解
2019/06/13 Python
python如何将两个txt文件内容合并
2019/10/18 Python
维多利亚的秘密官方旗舰店:VICTORIA’S SECRET
2018/04/02 全球购物
关于旷工的检讨书
2014/02/02 职场文书
小学信息技术教学反思
2014/02/10 职场文书
新闻传播专业求职信
2014/07/22 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
2014年终个人工作总结
2014/11/07 职场文书
2014年大学学生会工作总结
2014/12/02 职场文书
党员志愿者服务倡议书
2015/04/29 职场文书
个人原因辞职信模板
2015/05/13 职场文书
毕业生政审意见范文
2015/06/04 职场文书
「月刊Action」2022年5月号封面公开
2022/03/21 日漫