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 相关文章推荐
验证用户是否修改过页面的数据的实现方法
Sep 26 Javascript
Fastest way to build an HTML string(拼装html字符串的最快方法)
Aug 20 Javascript
raphael.js绘制中国地图 地图绘制方法
Feb 12 Javascript
JavaScript数组前面插入元素的方法
Apr 06 Javascript
一览画面点击复选框后获取多个id值的方法
May 30 Javascript
利用js编写响应式侧边栏
Sep 17 Javascript
JavaScript中动态向表格添加数据
Jan 24 Javascript
AngularJS遍历获取数组元素的方法示例
Nov 11 Javascript
element ui table 增加筛选的方法示例
Nov 02 Javascript
详解微信小程序框架wepy踩坑记录(与vue对比)
Mar 12 Javascript
jQuery实现鼠标放置名字上显示详细内容气泡提示框效果的方法分析
Apr 04 jQuery
jquery实现加载更多&quot;转圈圈&quot;效果(示例代码)
Nov 09 jQuery
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
解析PayPal支付接口的PHP开发方式
2010/11/28 PHP
php tp验证表单与自动填充函数代码
2012/02/22 PHP
php解析html类库simple_html_dom(详细介绍)
2013/07/05 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
2015/04/15 PHP
详解Window7 下开发php扩展
2015/12/31 PHP
详解yii2实现分库分表的方案与思路
2017/02/03 PHP
PHPMAILER实现PHP发邮件功能
2018/04/18 PHP
PDO::getAvailableDrivers讲解
2019/01/28 PHP
PHP使用 Pear 进行安装和卸载包的方法详解
2019/07/08 PHP
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
深入理解JavaScript系列(3) 全面解析Module模式
2012/01/15 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
2013/06/29 Javascript
JS,Jquery获取select,dropdownlist,checkbox下拉列表框的值(示例代码)
2014/01/11 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
详解vue事件对象、冒泡、阻止默认行为
2017/03/20 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
JS实现获取word文档内容并输出显示到html页面示例
2018/06/23 Javascript
微信小程序如何修改radio和checkbox的默认样式和图标
2019/07/24 Javascript
浅探express路由和中间件的实现
2019/09/30 Javascript
js实现漂亮的星空背景
2019/11/01 Javascript
js实现网页版贪吃蛇游戏
2020/02/22 Javascript
python 算法 排序实现快速排序
2012/06/05 Python
在windows下Python打印彩色字体的方法
2018/05/15 Python
python 内置函数汇总详解
2019/09/16 Python
python利用datetime模块计算程序运行时间问题
2020/02/20 Python
在Python中使用K-Means聚类和PCA主成分分析进行图像压缩
2020/04/10 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
css3 border旋转时的动画应用
2016/01/22 HTML / CSS
澳大利亚冒险体验:Adrenaline(跳伞、V8赛车、热气球等)
2017/09/18 全球购物
编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串
2014/01/07 面试题
《数星星的孩子》教学反思
2014/04/11 职场文书
民族团结好少年事迹材料
2014/08/19 职场文书
介绍信的写法
2015/01/31 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
励志语录:时光飞逝,请学会珍惜所有的人和事
2020/01/16 职场文书
JavaScript严格模式不支持八进制的问题讲解
2021/11/07 Javascript