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中“+=”的应用
Feb 02 Javascript
JavaScript高级程序设计 客户端存储学习笔记
Sep 10 Javascript
javaScript 计算两个日期的天数相差(示例代码)
Dec 27 Javascript
Extjs Label的 fieldLabel和html属性值对齐的方法
Jun 15 Javascript
jQuery中[attribute=value]选择器用法实例
Dec 31 Javascript
JavaScript中的boolean布尔值使用学习及相关技巧讲解
May 26 Javascript
浅谈React中的元素、组件、实例和节点
Feb 27 Javascript
在Angular中使用JWT认证方法示例
Sep 10 Javascript
使用JavaScript破解web
Sep 28 Javascript
用node.js写一个jenkins发版脚本
May 21 Javascript
微信小程序中悬浮窗功能的实现代码
Aug 02 Javascript
5个你不知道的JavaScript字符串处理库(小结)
Jun 01 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 自定义错误处理函数的使用详解
2013/05/10 PHP
php中url传递中文字符,特殊危险字符的解决方法
2013/08/17 PHP
php登陆页的密码处理方式分享
2013/10/14 PHP
PHP实现即时输出、实时输出内容方法
2015/05/27 PHP
PHP的Yii框架中View视图的使用进阶
2016/03/29 PHP
利用WebBrowser彻底解决Web打印问题(包括后台打印)
2009/06/22 Javascript
JQuery弹出层示例可自定义
2014/05/19 Javascript
Javascript 绘制 sin 曲线过程附图
2014/08/21 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
解决JS组件bootstrap table分页实现过程中遇到的问题
2016/04/21 Javascript
jQuery控制元素隐藏和显示
2017/03/03 Javascript
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
jQuery DOM节点的遍历方法小结
2017/08/15 jQuery
vue2+el-menu实现路由跳转及当前项的设置方法实例
2017/11/07 Javascript
解决 viewer.js 动态更新图片导致无法预览的问题
2019/05/14 Javascript
Python面向对象编程基础解析(一)
2017/10/26 Python
python使用pil库实现图片合成实例代码
2018/01/20 Python
python的socket编程入门
2018/01/29 Python
python匹配两个短语之间的字符实例
2018/12/25 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
基于python2.7实现图形密码生成器的实例代码
2019/11/05 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
Python 实现微信自动回复的方法
2020/09/11 Python
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
西部世纪面试题
2014/12/05 面试题
医院党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
寝室长工作失责检讨书
2014/10/06 职场文书
新员工入职感言范文!
2019/07/04 职场文书
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
2021/05/17 Python
tensorboard 可视化之localhost:6006不显示的解决方案
2021/05/22 Python
带你学习MySQL执行计划
2021/05/31 MySQL
日本官方排名前10的动漫,名侦探柯南上榜,第一是一部创造历史的动漫
2022/03/18 日漫
单机多实例部署 MySQL8.0.20
2022/05/15 MySQL