兩種監(jiān)聽頁面滾動的方法
一、原生js通過window.onscroll監(jiān)聽
window.onscroll = function() {
//為了保證兼容性耙蔑,這里取兩個值宵凌,哪個有值取哪一個
//scrollTop就是觸發(fā)滾輪事件時滾輪的高度
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
console.log("滾動距離" + scrollTop);
}
二、Jquery通過$(window).scroll()監(jiān)聽
$(window).scroll(function() {
//為了保證兼容性隅居,這里取兩個值钠至,哪個有值取哪一個
//scrollTop就是觸發(fā)滾輪事件時滾輪的高度
var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
console.log("滾動距離" + scrollTop);
})
將頁面滾動到指定位置
主要使用的是錨點技術,錨點元素通過scrollTop值改變進行定位军浆。
錨點
錨點是網(wǎng)頁制作中超級鏈接的一種棕洋,又叫命名錨記。命名錨記像一個迅速定位器一樣乒融,是一種頁面內(nèi)的超級鏈接掰盘。
法一 直接使用scrollTop
使用scrollTop方法,x為滾輪的高度
$("body,html").scrollTop(x);
加動畫的滾動
// 滾動到指定位置
$('html, body').animate({
scrollTop: $("#div1").offset().top
}, 2000);
// 滾動到頂部赞季,指定距頂部的距離
$('.scroll_top').click(function(){
$('html,body').animate({
scrollTop: '0px'
}, 800);
});
法二 利用hash
hash
hash 屬性是一個可讀可寫的字符串愧捕,該字符串是 URL 的錨部分(從 # 號開始的部分)。
location.hash=anchorname申钩。
例如:以下地址的hash為#hot
http://this.summer.io/is/#hot // location.hash → #hot
以下函數(shù)將頁面定位到title元素
function aa(){
window.location.hash = "#title";
}
法三 直接使用超鏈接錨點
點擊a標簽頁面將會定位到anchor1元素
<a href="#anchor1">錨點1</a>
如想深入了解可查看錨點定位技術機制次绘、應用與問題此文章。