我在單個網頁上有一個菜單,其鏈接將頁面移動到具有相應ID的部分。但是,有一個粘性標題覆蓋了每個部分的頂部,所以我想略微滾動以進行補償。頁面跳轉到錨點後移動屏幕滾動位置?
我試圖確定一種方法,在頁面移動到一個部分後,將頁面滾動50px 。我嘗試在每個鏈接上執行一個.click()
事件偵聽器,但似乎在發出回調後移動頁面,否定了我嘗試滾動的操作。
我的代碼如下所示:
HTML:
<ul id="menu">
<li id="menu-item-1"><a href="#1">1</a></li>
<li id="menu-item-2"><a href="#2">2</a></li>
<li id="menu-item-3"><a href="#3">3</a></li>
<li id="menu-item-4"><a href="#4">4</a></li>
</ul>
JS:(兩個內線在控制檯工作,但不是在頁面代碼本身)
$('#menu-item-1 a').click(function(){
var y = $(window).scrollTop();
$(window).scrollTop(y-50);
});
有沒有辦法監聽一個鏈接動作來完成,然後運行我的滾動代碼?
我想這一點,但想看看是否有這樣做一個更清潔的方式。我有過設置超時的經驗,如果某個事件在不同的瀏覽器/計算機上以不同的速度發生,硬編碼的時間限制可能不起作用。 – AKor
設置計時器爲50毫秒應該工作......我很確定,如果這只是一個定位到頁面內的div標籤沒有任何其他功能,它會比這更快 –