1

こちらでご覧いただけるように、カスタム スクローラーを実装しました。私のスクローラーでは、ScrollToを使用しました。問題は、ユーザーがカスタム スクローラーを使用しているときと、マウスやキーボードなどの他のスクロール方法を使用しているときを理解する必要があることです。私はこれを試しました:

$(window).scroll(function(){

});

私のカスタムスクローラーもこれをトリガーします。これが私のページの構造です:

<div class="page">

   <div id="scroller" class="news-scroller">
     <div ><span id="up"></span></div>
     <div ><span id="down"></span></div>
   </div>

   <div class="news">
   </div>
   <div class="news">
   </div>
   ....

そして、これが私のカスタムスクローラーのコードです:

var current = $(".news").eq(0);

$("#down").click(function(){
   if(current.next().size() > 0)
   {
      current = current.next();
      $.scrollTo("#"+current.attr("id"), 800);     

   }
   else  if(current.next().size() <= 0)
   {
    return
   }
});

$("#up").click(function(){
   if(current.prev().size() > 0)
   {
      current=current.prev();
      $.scrollTo("#"+current.attr("id"), 800);
   }
   else  if(current.prev().size() <= 0)
   {
      return;
   }
});
4

1 に答える 1

0

これを探している人が他にもいるかもしれないので、結論は次のとおりです: $(window).scroll() は、マウスやキーボード、またはあらゆる種類のスクロールに関係なく、発生するスクロールイベントで発生します。それらを相互に区別する唯一の方法は、カスタムスクローラーでパターンを見つけることです (たとえば、私のスクローラーは特定の時間内に特定の距離をスクロールしていました)。これはあまり正確な解決策ではありません。

私が試した解決策は、カスタム スクローラーでカスタム イベントをトリガーすることでした。このようにして、ユーザーがカスタム スクローラーを使用しているときと使用していないときを理解できました。

于 2012-09-27T08:30:43.600 に答える