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