2016-01-25 32 views
0

我基於四個選項卡構建了一個移動導航菜單。第一項是webapp的活動屏幕。其他3項是搜索菜單,通知菜單和一般菜單。當最後三個標籤中的一個被點擊時,他們獲得display: block與jQuery show()函數。點擊使用舊的jQuery scrollTop位置

當其中一個項目被點擊時,頁面應該滾動操作頂部。但是,當項目關閉並且主屏幕再次顯示時,它應該滾動回最後一個已知的滾動位置。我一直在試圖用下面的代碼來實現它。

var scrollposition = $(window).scrollTop(); 

$("#mobilenav").on("mouseup touchend", function(e) { 

    console.log(scrollposition); 

    $(notificationButton).on('click', function() { 
     notificationDiv.show(); 
     $(window).scrollTop(0); 
    }); 

    if(!notificationDiv.is(e.target) 
     && notificationDiv.has(e.target).length === 0) 
    { 
     notificationDiv.hide(); 
     $(window).scrollTop(scrollposition); 
    } 
}); 

問題是,它只記住頁面加載時的滾動位置。當變量scrollposition放置在.on()函數內時,它會在點擊notificationButton時更新位置,這會使scrollposition的值爲0.

回答

0

您可以保存腳本的狀態 例如onTop = false; 並更改腳本內的狀態。當你需要回到頂部或底部時,你可以檢查狀態,並接受或改變他。

+0

如果您可以在答案中提供完整的代碼示例並進行編輯,那將會很有幫助。 – docksteaderluke

+0

嗨,謝謝你的回答。你能提供一個你如何實現這段代碼的例子嗎?我不幸還沒有能夠解決它。 – Sanderfish