Jquery scrollTo阻止队列

时间:2011-08-29 17:15:43

标签: javascript jquery queue scrollto

滚动的简单问题。我正在寻找一种方法来阻止滚动动画的排队。我试图在stop()中工作,但它似乎没有做到这一点..任何想法?这是代码......

  

('#nav_hold li a')。点击(function(){

     

$ currLoc = $(this).attr('href');

$newLoc = $currLoc.replace('#!','');  
     

$ newLoc =“#”+ $ newLoc;

     

$(window).scrollTo($ newLoc,1000);
  });

这是网站FYI http://www.dudnyk.com/files/connector/

5 个答案:

答案 0 :(得分:7)

我遇到了同样的问题,但我在这里找到了解决方案http://usejquery.com/sites/contrast-rebellion

只需使用该行 在任何新的scrollTo之前jQuery.scrollTo.window().queue([]).stop();

答案 1 :(得分:1)

有功能clearQueue()。我认为这应该有所帮助。

答案 2 :(得分:1)

.stop()用于删除当前正在运行的动画,还要清除队列使用.stop(true)

$('#about').click(function() {
    $(this).stop(true);
    $.scrollTo('#about', 1000); 
});

来自jQuery Docs(上面链接):

  

如果在同一个元素上调用多个动画方法,则   以后的动画放置在元素的效果队列中。   这些动画直到第一个动画完成才会开始。什么时候   调用.stop(),队列中的下一个动画立即开始。   如果clearQueue参数的值为true,那么   队列中的其余动画将被删除,永远不会运行。

答案 3 :(得分:0)

{ queue : false }

作为scrollTo选项

但这是默认值。锚点击不会让你到达某个地方吗?

答案 4 :(得分:0)

当你对任何元素使用$.scrollTo时,它实际上是滚动(带动画)文档,直到滚动到达指定的元素。所以我相信我们应该停止文档上的动画。试试这个

$('#about').click(function() {
    $(window).stop();
    $.scrollTo('#about', 1000); 
});