jQuery:$(document).scrollLeft()值与$(document).scroll(...)事件上的前一个$(document).scrollLeft()值之间的差异

时间:2016-10-20 14:21:53

标签: jquery scroll

我正在尝试计算用户在$(document).scroll(..)事件中向右/向左滚动的距离。

$(function() {

    $(document).scroll(function() {

        console.log($(document).scrollLeft());

        console.log('==========');

    });

});

你可以在这里看到一个小提琴:https://jsfiddle.net/5twd82bo/

基本上,我想计算控制台输出中最后2个值之间的差异,因为用户正在滚动。

任何帮助将不胜感激!

由于

1 个答案:

答案 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;
&#13;
&#13;