暂停自动滚动Div
Pause Auto-scrolling Div
我有一个div,我想在页面加载时上下滚动,一旦用户悬停在div上就暂停滚动。我已经设法让div上下滚动,但是我不能让它暂停。
有什么建议吗?
<div id="box" class="timeline container" style="overflow:scroll; width:100%; height:300px;">
//CONTENT
</div>
<script>
$("#box").animate({ scrollTop: $(document).height() }, 4000);
setTimeout(function() {
$('#box').animate({scrollTop:0}, 4000);
},4000);
setInterval(function(){
$("#box").animate({ scrollTop: $(document).height() }, 4000);
setTimeout(function() {
$('#box').animate({scrollTop:0}, 4000);
},4000);
},8000);
</script>
我建议你不要使用动画的滚动功能。相反,只需每100毫秒(或任何时间)增加滚动位置。
您还需要添加标志来确定滚动方向和暂停状态:
// global level variables.
var isPaused = false;
var direction = 1;
var element = $('#box');
// interval for scroll.
setInterval(function () {
if(!isPaused){
var pos = element.scrollTop();
var offset = 1 * direction;
element.scrollTop(pos + offset);
// Change the scroll direction when hit an end.
if ((element[0].scrollHeight - element.scrollTop() == element.outerHeight()) || (element.scrollTop() <= 0)) {
direction *= -1;
}
}
}, 100);
然后你可以在mouseenter和mouseexit事件时改变isPaused
标志,或者使用JQuery hover
事件:
$('#box').hover(
function() {
isPaused = true;
}, function() {
isPaused = false;
}
);
下面是一个工作示例
你应该能够停止/暂停你的动画与jQuery函数stop()
: https://api.jquery.com/stop/
相关文章:
- 在用户用动画滚动175像素后缩小固定的Div
- 如何确定滚动DIV中的可见DOM元素
- 如何获取滚动DIV中的当前活动文本
- jQuery Div滚动功能:IE中的问题
- DIV 滚动到达页脚(另一个 DIV)后停止滚动
- 使用 Jquery 在页面刷新时停止 Div 滚动到顶部
- Div 滚动位置在页面更改时不会恢复到顶部
- 添加新内容时,保持DIV滚动到底
- DIV滚动器的跨浏览器问题
- Javascript DIV滚动移动
- 如何使同步两个 Div 滚动位置更平滑
- CSS Div滚动高度
- Div滚动与jQuery动画
- 当单击TD时,可滚动的DIV滚动到顶部
- 为特定的js/jsp隐藏Div滚动条
- 单击按钮时从一个Div滚动到另一个Div
- 如何根据条件将 DIV 滚动到浏览器窗口的顶部
- Firefox中的Div滚动
- Div滚动向下和滚动向上与jquery
- 当用户到达某个Div(滚动)时如何触发Fancybox