在這兩種情況下(jQuery的或香草的JavaScript),你要做到以下幾點:
- 選取
href
設置所有錨標籤到#top
- 創建一個「跳轉」功能,將頁面位置設置爲頂部,並且回報
false
防止默認鏈接行爲
- 綁定的「跳轉」函數的
click
事件的所有節點的發現
要跳到你有幾種選擇。我在下面的第一個例子中提供了它們(特定於jQuery和JS)。
使用jQuery
jQuery讓選擇和結合於click
事件容易。然後,您可以使用jQuery或直接JavaScript跳到頁面的頂部。
$('a[href="#top"]').click(function() {
//
// To jump, pick one...
//
// Vanilla JS Jump
window.scroll(0,0)
// Another Vanilla JS Jump
window.scrollTo(0,0)
// jQuery Jump
$('html,body').scrollTop(0);
// Fancy jQuery Animated Scrolling
$('html,body').animate({ scrollTop: 0 }, 'slow');
//
// ...then prevent the default behavior by returning false.
//
return false;
});
jQuery的animate
提供對動畫的持續時間,並設置回調的能力,緩解一起選項。
香草的JavaScript
您還可以使用香草JS全路通過...查詢和有約束力的,然而,變得更痛苦一點。
現代瀏覽器都支持document.querySelectorAll()
這將讓您抓住所有的鏈接元素,就像你用jQuery:
var links = document.querySelectorAll('a[href="#top"]');
然後遍歷所有的元素,並結合「跳」:
for (var i = links.length - 1; i >= 0; i--) {
links[i].onclick = function() { window.scroll(); return false; };
};
如果您的目標瀏覽器不向您贈送querySelectorAll
,您只需遍歷所有錨定標記即可找到與#top
鏈接的鏈接:
var links = document.body.getElementsByTagName('a');
for (var i = links.length - 1; i >= 0; i--) {
var l = links[i];
if(l.getAttribute('href') === '#top') {
l.onclick = function() { window.scroll(); return false; }
}
}
來源
2013-08-26 04:53:18
fny
好啊!這工作完美。解釋很好,謝謝你擴展你的答案。 –