2013-03-10 161 views
0

我想向下滚动到页面中的div,然后向上滚动一下。向上滚动/向下滚动jquery

使用jquery。

我得到这个的onclick绑定:

{ 
$.scrollTo($('#theDestDiv'), 1000); 
window.scrollTo(0, (window.pageYOffset)-100); 
} 

问题是:页面之前window.scroll火灾完成滚动到theDestDiv 然后pageYOffset得到错误的值。

我试过setTimeout,并且只有当超时时间是向下滚动时才有效。

任何想法如何解决?

+0

你使用了哪个'scrollTo插件(因为有多个)? – tpeczek 2013-03-10 09:08:03

+0

不知道该插件,但这种有效:$ .scrollTo($('#theDisclaimer'),1000); $('html,body')。animate({scrollTop:' - = 50'});滚动到达目的地并滚动50px。如果还有其他方法,请不要滚动两次,请添加。 – 2013-03-10 09:38:08

回答

1

您是否尝试过使用jquery的动画完成回调函数?您可以在动画完成后运行代码。下面是一个例子。

var scrollTo = $('#theDestDiv').offset(); //find the target 
$('html, body').animate({scrollTop:scrollTo}, 1000, function(){ 
    //on animation complete, scroll back up 
    var scrollUp = scrollTo.top-100; 
    $('html, body').animate({scrollTop:scrollUp}, 1000); 
}); 

如果你想给它一种“反弹”,我会建议使用jquery.easing插件。您想要使用的缓动是easeOutBack,以便动画通过其最终位置并缓慢返回。 http://gsgd.co.uk/sandbox/jquery/easing/

1
$.scrollTo($('#theDisclaimer'), 1000); 
scroll_up_disclaimer(); 

function scroll_up_disclaimer(){ 
    $("html, body").animate({scrollTop:"-=68"}) 
}