2013-03-10 222 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"}) 
}