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实现的使用键盘控制人物走动实例
Aug 27 Javascript
JS+CSS实现可拖拽的漂亮圆角特效弹出层完整实例
Feb 13 Javascript
Node.js实现JS文件合并小工具
Feb 02 Javascript
jquery+ajax实现直接提交表单实例分析
Jun 17 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
Oct 14 Javascript
原生Javascript插件开发实践
Jan 09 Javascript
详解vue.js2.0父组件点击触发子组件方法
May 10 Javascript
Node.js使用cookie保持登录的方法
May 11 Javascript
Vue render函数实战之实现tabs选项卡组件
Apr 22 Javascript
js实现单元格拖拽效果
Feb 10 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
Dec 07 Vue.js
Vue中computed和watch有哪些区别
Dec 19 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/10/09 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
PHP中isset与array_key_exists的区别实例分析
2015/06/02 PHP
php结合mysql与mysqli扩展处理事务的方法
2016/06/29 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
PHP设计模式之适配器模式(Adapter)原理与用法详解
2019/12/12 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
利用jquery动画特效和css打造的侧边弹出垂直导航
2014/04/04 Javascript
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
javascript下拉列表中显示树形菜单的实现方法
2015/11/17 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
jquery中用jsonp实现搜索框功能
2016/10/18 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
react中实现搜索结果中关键词高亮显示
2018/07/31 Javascript
webpack dll打包重复问题优化的解决
2018/10/10 Javascript
使用Javascript简单计算器
2018/11/17 Javascript
详解javascript中的Error对象
2019/04/25 Javascript
python的正则表达式re模块的常用方法
2013/03/09 Python
python实现对象列表根据某个属性排序的方法详解
2019/06/11 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
2019/07/11 Python
在python中实现求输出1-3+5-7+9-......101的和
2020/04/02 Python
PyQT5速成教程之Qt Designer介绍与入门
2020/11/02 Python
python 解决函数返回return的问题
2020/12/05 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
对Pytorch 中的contiguous理解说明
2021/03/03 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
应届生英语教师求职信
2013/11/05 职场文书
日语专业推荐信
2013/11/12 职场文书
采购员的工作职责
2013/12/26 职场文书
英语教学随笔感言
2014/02/20 职场文书
内科护士节演讲稿
2014/09/11 职场文书
2016年会开场白台词
2015/06/01 职场文书
《珍珠鸟》教学反思
2016/02/16 职场文书
Python Django搭建文件下载服务器的实现
2021/05/10 Python
浅析Python中的随机采样和概率分布
2021/12/06 Python