1

非常に単純な質問がありますが、理解できないようです。ユーザーがスクロールするたびに、scrollTop が変化します。scrollTop の新しい値から古い値を引きたいと思います。しかし、ユーザーがスクロールを停止した後に古い値を新しい値から減算できるようにするには、どうすれば古い値を保存できますか? 簡単な方法があるはずです。

$(function(){
  $(window).scroll(function(){
      var curTop = $(window).scrollTop();
      var newTop = (curTop - curTop);
      console.log(newTop);  
   });
});

これは明らかに機能しません。皆さん、心当たりはありますか?

4

2 に答える 2

0

関数のスコープ外のグローバル スコープで oldScrollTop を定義し、関数が呼び出されるたびに、データを使用して計算を行った後に更新します。

このように、「古い」値は、グローバル スコープ内の 1 つの関数呼び出しから別の関数呼び出しまで格納されたままになります。グローバル スコープとは、jquery の document.ready の外側であっても、関数呼び出しの外側を意味します。

于 2012-10-15T20:59:40.023 に答える
0

これはうまくいくはずです:

$(function(){
  var curTop = $(window).scrollTop();
  $(window).scroll(function(){
      var newTop = $(window).scrollTop();
      var diff = newTop - curTop;
      curTop = newTop;
      console.log(diff);
   });
});

curTop古いスクロールトップと新しいスクロールトップの差が計算された後、現在のスクロールトップを格納し、スクロールイベントごとに更新します。

于 2012-10-15T21:06:51.650 に答える