1.基礎准備:
scrollTop() 方法返回或設置匹配元素的滾動條的垂直位置。
scroll top offset 指的是滾動條相對於其頂部的偏移。
如果該方法未設置參數,則返回以像素計的相對滾動條頂部的偏移。
語法
$(selector).scrollTop(offset)
2.
toggleClass() 對設置或移除被選元素的一個或多個類進行切換。
例如對設置和移除所有 <p> 元素的 "main" 類進行切換:
復制代碼 代碼如下:
$("button").click(function(){
$("p").toggleClass("main");
});
3.
setInterval() 方法可按照指定的周期(以毫秒計)來調用函數或計算表達式。
setInterval() 方法會不停地調用函數,直到 clearInterval() 被調用或窗口被關閉。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數。
4.
scrollTo() 方法可把內容滾動到指定的坐標。
scrollTo(xpos,ypos)
參數 描述
xpos 必需。要在窗口文檔顯示區左上角顯示的文檔的 x 坐標。
ypos 必需。要在窗口文檔顯示區左上角顯示的文檔的 y 坐標。
由此的一段實現一鍵向上的代碼如下:
復制代碼 代碼如下:
var topbtn = $("#totop"); 想要一鍵向上的按鈕元素
var lastScroll = 0;
topbtn.css("display", "none");
window.onscroll = function(){ onscroll貌似為html5的屬性
var top = $(window).scrollTop();初始均為0
復制代碼 代碼如下:
if(top > 0){
topbtn.css("display", "");
}
if(top == 0){若為起始狀態,則不顯示向上圖標
topbtn.css("display", "none");
}
};
topbtn.click(function(){ 點擊事件
var scrollTop = 0;
var curPos = $(window).scrollTop();現在滾動條的位置
topbtn.addClass("movingtotop"); 運動中顯示另外的圖片
var step = Math.abs(scrollTop - curPos) / 200 ;
var tid = setInterval(function() {不斷調用,幀動成畫
topbtn.toggleClass("movingtotop"); 精妙的一段代碼,用元素屬性的設置和刪除交替,使得有動態感閃爍效果
if (curPos > scrollTop + 14) {
curPos -= step;
step = step * 1.05;速度逐步加快
window.scrollTo(0, curPos);
} else if (curPos <= scrollTop + 14){直接跳到起始位置
window.scrollTo(0, scrollTop);
topbtn.removeClass("movingtotop");
clearInterval(tid); 關閉循環
}
}, 0.01);
});