我正在尝试计算用户在$(document).scroll(..)事件中向右/向左滚动的距离。
$(function() {
$(document).scroll(function() {
console.log($(document).scrollLeft());
console.log('==========');
});
});
你可以在这里看到一个小提琴:https://jsfiddle.net/5twd82bo/
基本上,我想计算控制台输出中最后2个值之间的差异,因为用户正在滚动。
任何帮助将不胜感激!
由于
答案 0 :(得分:0)
基本上,你要找的是滚动停止事件。
您可以通过对scroll事件应用setTimeout函数来创建新的滚动停止事件。
$(function() {
$.fn.scrollStopped = function(callback) {
var that = this, $this = $(that);
$this.scroll(function(ev) {
clearTimeout($this.data('scrollTimeout'));
$this.data('scrollTimeout', setTimeout(callback.bind(that), 250, ev));
});
};
var prevVal=0;
$(document).scrollStopped(function() {
console.log(prevVal - $(document).scrollLeft());
prevVal = $(document).scrollLeft();
//console.log($(document).scrollLeft());
//console.log('==========');
});
});

div {
width:5000px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
hello
</div>
&#13;