我正在尝试在整个窗口滚动条上找到捕获鼠标(滚动结束)事件的解决方案。 但这段代码只是零星的。任何帮助将受到高度赞赏。
<script type="text/javascript">
$(function() {
var scrollTimer;
var isMouseDown = false;
$(window)
.mousedown(function(event) {
clearTimeout(scrollTimer);
isMouseDown = true;
})
.mouseup(function(event) {
isMouseDown = false;
})
.scroll(function (event) {
clearTimeout(scrollTimer);
scrollTimer = setTimeout(function() {
if (! isMouseDown) {
console.log('UP');
}
}, 500);
});
});
</script>
答案 0 :(得分:2)
我认为这就是你所追求的:
$(document).bind("scrollstop", function() {
alert("Scrolling has stopped");
});
$(document).bind("scrollstart", function() {
alert("Scrolling started");
});
这是我使用的jquery库的链接:
http://james.padolsey.com/demos/scrollevents/scroll-startstop.events.jquery.js
答案 1 :(得分:0)
答案 2 :(得分:0)
由于我测试的浏览器在您离开滚动条后立即收到了鼠标中心事件,因此在滚动鼠标时,将鼠标中心绑定到鼠标事件。像这样的东西:
$(window).on('mousedown.ss',function(ev) {
$.ssMouseDown=true;
});
$(window).on('mouseup.ss',function(ev) {
$.ssMouseDown=false;
});
$(window).on('scroll.ss',function(ev) {
if ($.ssMouseDown) {
$(window).off('mouseenter.ss');
$(window).one('mouseenter.ss',function(ev) {
$.ssMouseDown=false;
});
}
});
这不一定完全正确,但做了工作......