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 回答