js实现滚动条⾃动滚动本⽂实例为⼤家分享了js实现滚动条⾃动滚动的具体代码,供⼤家参考,具体内容如下效果类似于直播⽹站的评论,会⼀条接着⼀条向上 go out ;
js部分很简单:通过控制scrollTop的值来实现⾃动滚动效果;
很重要两点:
1、scrollTop的值不可以加单位,谨记!
2、⽹页缩放⽐例会影响效果实现(下⾯具体说);
scrollTop需要注意的三点:
1、如果这个元素没有被溢出,scrollTop为0;
2、设置的scrollTop值⼩于0,则scrollTop的值为0
3、如果设置scrollTop的值超出了这个容器滚动的值,则scrollTop的值为容器最⼤值js部分:
(function () {
// 获取⽗盒⼦(肯定有滚动条)
var parent = ElementById('parent');
// 获取⼦盒⼦(⾼度肯定⽐⽗盒⼦⼤)
var child1 = ElementById('child1');
var child2 = ElementById('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>
html滚动效果代码<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 = ElementById('parent');
var child1 = ElementById('child1');
var child2 = ElementById('child2');
child2.innerHTML = child1.innerHTML;
setInterval(function () {
if(parent.scrollTop >= child1.scrollHeight) {
parent.scrollTop = 0;
} else {
parent.scrollTop++;
}
}, 20);
})()
</script>
</body>
</html>
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论