JS實現(xiàn)一鍵回頂功能示例代碼
更新時間:2013年10月28日 11:33:04 作者:
一鍵回頂功能想必大家在瀏覽網(wǎng)頁時會經(jīng)常遇到吧,實現(xiàn)的方法也有很多,在本文為大家介紹下js是如何實現(xiàn)的,感興趣的朋友可以參考下
1.基礎(chǔ)準備:
scrollTop() 方法返回或設(shè)置匹配元素的滾動條的垂直位置。
scroll top offset 指的是滾動條相對于其頂部的偏移。
如果該方法未設(shè)置參數(shù),則返回以像素計的相對滾動條頂部的偏移。
語法
$(selector).scrollTop(offset)
2.
toggleClass() 對設(shè)置或移除被選元素的一個或多個類進行切換。
例如對設(shè)置和移除所有 <p> 元素的 "main" 類進行切換:
$("button").click(function(){
$("p").toggleClass("main");
});
3.
setInterval() 方法可按照指定的周期(以毫秒計)來調(diào)用函數(shù)或計算表達式。
setInterval() 方法會不停地調(diào)用函數(shù),直到 clearInterval() 被調(diào)用或窗口被關(guān)閉。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數(shù)。
4.
scrollTo() 方法可把內(nèi)容滾動到指定的坐標。
scrollTo(xpos,ypos)
參數(shù) 描述
xpos 必需。要在窗口文檔顯示區(qū)左上角顯示的文檔的 x 坐標。
ypos 必需。要在窗口文檔顯示區(qū)左上角顯示的文檔的 y 坐標。
由此的一段實現(xiàn)一鍵向上的代碼如下:
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){若為起始狀態(tài),則不顯示向上圖標
topbtn.css("display", "none");
}
};
topbtn.click(function(){ 點擊事件
var scrollTop = 0;
var curPos = $(window).scrollTop();現(xiàn)在滾動條的位置
topbtn.addClass("movingtotop"); 運動中顯示另外的圖片
var step = Math.abs(scrollTop - curPos) / 200 ;
var tid = setInterval(function() {不斷調(diào)用,幀動成畫
topbtn.toggleClass("movingtotop"); 精妙的一段代碼,用元素屬性的設(shè)置和刪除交替,使得有動態(tài)感閃爍效果
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); 關(guān)閉循環(huán)
}
}, 0.01);
});
scrollTop() 方法返回或設(shè)置匹配元素的滾動條的垂直位置。
scroll top offset 指的是滾動條相對于其頂部的偏移。
如果該方法未設(shè)置參數(shù),則返回以像素計的相對滾動條頂部的偏移。
語法
$(selector).scrollTop(offset)
2.
toggleClass() 對設(shè)置或移除被選元素的一個或多個類進行切換。
例如對設(shè)置和移除所有 <p> 元素的 "main" 類進行切換:
復(fù)制代碼 代碼如下:
$("button").click(function(){
$("p").toggleClass("main");
});
3.
setInterval() 方法可按照指定的周期(以毫秒計)來調(diào)用函數(shù)或計算表達式。
setInterval() 方法會不停地調(diào)用函數(shù),直到 clearInterval() 被調(diào)用或窗口被關(guān)閉。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的參數(shù)。
4.
scrollTo() 方法可把內(nèi)容滾動到指定的坐標。
scrollTo(xpos,ypos)
參數(shù) 描述
xpos 必需。要在窗口文檔顯示區(qū)左上角顯示的文檔的 x 坐標。
ypos 必需。要在窗口文檔顯示區(qū)左上角顯示的文檔的 y 坐標。
由此的一段實現(xiàn)一鍵向上的代碼如下:
復(fù)制代碼 代碼如下:
var topbtn = $("#totop"); 想要一鍵向上的按鈕元素
var lastScroll = 0;
topbtn.css("display", "none");
window.onscroll = function(){ onscroll貌似為html5的屬性
var top = $(window).scrollTop();初始均為0
復(fù)制代碼 代碼如下:
if(top > 0){
topbtn.css("display", "");
}
if(top == 0){若為起始狀態(tài),則不顯示向上圖標
topbtn.css("display", "none");
}
};
topbtn.click(function(){ 點擊事件
var scrollTop = 0;
var curPos = $(window).scrollTop();現(xiàn)在滾動條的位置
topbtn.addClass("movingtotop"); 運動中顯示另外的圖片
var step = Math.abs(scrollTop - curPos) / 200 ;
var tid = setInterval(function() {不斷調(diào)用,幀動成畫
topbtn.toggleClass("movingtotop"); 精妙的一段代碼,用元素屬性的設(shè)置和刪除交替,使得有動態(tài)感閃爍效果
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); 關(guān)閉循環(huán)
}
}, 0.01);
});
相關(guān)文章
Javascript前端UI框架Kit使用指南之kitjs事件管理
本文詳細介紹了Kitjs的事件管理功能,包括普通的Dom事件、Kit如何解決問題、代碼解析、注銷事件等。需要的朋友可以參考下。2014-11-11js檢測IE8及以下瀏覽器版本并做出提示的函數(shù)代碼
這篇文章主要介紹了js檢測IE8及以下瀏覽器版本并做出提示的函數(shù)代碼,需要的朋友可以參考下2023-02-02數(shù)據(jù)分析軟件之FineReport教程:[5]參數(shù)界面JS(全)
表格軟件FineReport在設(shè)計報表時經(jīng)常會用到,這篇文章主要介紹數(shù)據(jù)分析軟件之FineReport教程:[5]參數(shù)界面JS,需要的朋友可以參考下2015-08-08