頁面跳到頂部的方法
一、使用錨點鏈接
毫無疑問,使用錨點鏈接是一種簡單的返回頂部的功能實現。該實現主要在頁面頂部放置一個指定名稱的錨點鏈接,然后我們在頁面下方放置一個返回到該錨點的鏈接,用戶點擊該鏈接即可返回到該錨點所在的頂部位置。
示例代碼如下:
<!-- 定義一個名稱為top的錨點鏈接 -->
<a name="top"></a>
<!-- 這里是網頁主體內容,此處省略 -->
<!-- 返回頁面頂部top錨點的鏈接 -->
<a href="#top">返回頂部</a>
值得注意的是,在現代瀏覽器中,如果瀏覽器找不到指定的錨點(例如top),瀏覽器將會嘗試跳轉到id為top的HTML元素的起始位置。因此,我們也可以在頭部放置一個id為top的HTML元素,遺憾的是,並不是所有的瀏覽器——尤其是某些瀏覽器的舊版本,都兼容這種行為。
二、使用js函數scrollTo()
當然,我們還可以利用JavaScript為我們提供的函數scrollTo(x, y)來實現返回到頁面頂部的功能。scrollTo函數可以滾動到指定坐標(x, y)處的內容。我們將坐標設定為(0, 0)即可起到返回頂部的作用。
<a href="javascript:scrollTo(0,0);">返回頂部</a>
三、使用js操作DOM樣式
此外,我們還可以使用js將body或html等元素的scrollTop屬性設置為0,即可滾動到頁面的頂部。我們一般使用jQuery來實現上述代碼。
// 以下三種方式均可實現返回頁面頂部
$(window).scrollTop(0);
$('body').scrollTop(0);
$('html').scrollTop(0);
此外,我們還可以使用jQuery的動畫效果函數animate()來實現平滑滾動到頁面頂部的動畫效果。
// 在500毫秒內平滑滾動到頁面頂部
$('body').animate( {scrollTop: 0}, 500);
四、本方式是漸進式返回頂部,要好看一些,代碼如下:
function pageScroll() {
window.scrollBy(0,-10);
scrolldelay = setTimeout('pageScroll()',100);
}
<a href="pageScroll();">返回頂部</a>
這樣就會動態返回頂部,不過雖然返回到頂部但是代碼仍在運行,還需要在pageScroll函數加一句給停止掉。
復制代碼 代碼如下:if(document.documentElement.scrollTop==0) clearTimeout(scrolldelay);
五、簡單的靜態返回頂部,用js模擬滾動效果上滑至頂部
js代碼
function pageScroll(){
//把內容滾動指定的像素數(第一個參數向右滾動的像素數,第二個參數向下滾動的像素數)
window.scrollBy(0,-100);
//延時遞歸調用,模擬滾動向上效果
scrolldelay = setTimeout('pageScroll()',100);
//獲取scrollTop值,聲明了DTD的標准網頁取document.documentElement.scrollTop,
否則取document.body.scrollTop;因為二者只有一個會生效,另一個就恆為0,所以取和值
可以得到網頁的真正的scrollTop值
var sTop=document.documentElement.scrollTop+document.body.scrollTop;
//判斷當頁面到達頂部,取消延時代碼(否則頁面滾動到頂部會無法再向下正常瀏覽頁面)
if(sTop==0) clearTimeout(scrolldelay);
}
html代碼
<a onclick="pageScroll()">返回頂部</a>
缺點:滾動效果不平滑,且在頁面很長時點擊返回頂部,未向上到達頁面頂部無法再正常瀏覽頁面;
同上依舊是靜態固定於頁面底部,不一定能曝光在用戶面前。