如何使用scrollTo插件滚动到元素的新位置?

时间:2014-06-07 12:01:36

标签: javascript jquery scrollto

我写了一个jQuery click事件处理程序,它隐藏除了一个之外的所有元素,并使用scrollTo将窗口滚动到该元素的顶部,如下所示:

$(".jumbotron").click(function(){
            $('.jumbotron').not(this).toggle("slow");
            $.scrollTo($(this).position().top, 500);    
        });

但是当窗口已经移动到另一个位置时,窗口会滚动到元素的旧位置。如何隐藏所有其他元素并滚动到新位置?

2 个答案:

答案 0 :(得分:0)

最好在回调中执行此操作:

$(".jumbotron").click(function(){
   var $this = $(this); // cache it here
   $('.jumbotron').not(this).toggle("slow", function(){
      $.scrollTo($this.position().top, 500);
   });
});

.toggle( [duration ] [, complete ] )

答案 1 :(得分:0)

作为对Jai提议的改进:

$(".jumbotron").click(function(){
   var that = this;
   $('.jumbotron').not(that).toggle("slow", function(){
      $.scrollTo(that, 500);
   });
});

这应该有效,scrollTo也接受DOMNodes和jQuery对象。