1.基礎準備:
scrollTop() 方法傳回或設定符合元素的捲軸的垂直位置。
scroll top offset 指的是捲軸相對於其頂部的偏移。
如果方法未設定參數,則傳回以像素計的相對捲軸頂部的偏移。
語法
$(selector).scrollTop(offset)
2.
toggleClass() 對設定或移除被選元素的一個或多個類別進行切換。
例如對設置和移除所有
元素的"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){
topb.css("display"tn. "");
}
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 window.scrollTo(0, scrollTop);
topbtn.removeClass("movingtotop");
clearInterval(tid); 關閉循環
}
}, 0.01);
});