0
我知道這個問題是在stackoverflow上的allready,我也從這裏有我的解決方案。但是它仍然有一個小問題。單擊固定標頭的錨點時設置偏移
我有一個小的子菜單,它固定到頂部,所以當我點擊一個錨鏈接時,我想要在子菜單後的錨點。
首先我的代碼,這在大多數情況下:
function offsetSubmenu() {
if(location.hash.length !== 0) {
window.scrollTo(window.scrollX, window.scrollY - submenuHeight);
}
}
$(window).on("hashchange", function() {
offsetSubmenu();
});
window.setTimeout(function() {
offsetSubmenu();
}, 1);
你看到的是加載頁面時被執行的代碼一次,每次在URL變化的哈希值。它迄今爲止工作。問題在於散列沒有改變。例如,當你點擊第一個Hashlink時,滾動,然後再次敲擊那個鏈接,哈希不會改變,所以windowscroll跳轉到沒有子菜單偏移量的錨。
clicklistener不起作用,導致$("a").click(..)
在瀏覽器跳轉到錨點之前執行。
任何想法如何我可以處理錨點的偏移量,當hashtag不改變?
您是否嘗試過使用'的setTimeout(offsetSubmenu,1)'的'$( 「A」)點擊(。 ...)'? (就像你第一次執行'offsetSubmenu'一樣) –
@AlvaroMontoro非常好。寫在答案中,我會標記它。 – nbar