CSS-返回頂部程式碼

文藝小青年發表於2017-07-06

現在的網站基本上都是長頁面,多的有四五屏,少的話也有兩三屏,頁面太長有的時候為了提升使用者體驗,會在頁面右邊出現一個回到頂部的按鈕,這樣能快速回到頂部,以免在滑動頁面出現視覺螢幕,回到頂部一般有四種方式。

1.通過錨連結回到頂部,需要將body加入一個名為top的標記:

 

1
<a href="#top" target="_self">回到頂部</a>

 

2.通過JavaScript的scroll回到頂部,控制水平和垂直方向:

1
<a href="javascript:scroll(0,0)">JavaScript回到頂部<s/a>

3.通過JavaScript控制,緩慢向上滑動,不過不夠平滑,程式碼參考如下:

1
<a onclick="goScrollTop()">JavaScript緩慢向上滑動</a>
1
2
3
4
5
6
7
8
9
10
11
function goScrollTop() {
    //把內容滾動指定的畫素數(第一個引數是向右滾動的畫素數,第二個引數是向下滾動的畫素數)
    //向上是負數,向下是正數
    window.scrollBy(0, -100);
    //延時遞迴呼叫,模擬滾動向上效果
    scrolldelay = setTimeout(`goScrollTop()`, 100);
    //獲取scrollTop值,宣告瞭DTD的標準網頁取document.documentElement.scrollTop,否則取document.body.scrollTop;因為二者只有一個會生效,另一個就恆為0,所以取和值可以得到網頁的真正的scrollTop值
    var sTop = document.documentElement.scrollTop + document.body.scrollTop;
    //判斷當頁面到達頂部,取消延時程式碼(否則頁面滾動到頂部會無法再向下正常瀏覽頁面)
    if (sTop == 0) clearTimeout(scrolldelay);
}

4.當滾動條滾動到一定位置的時候顯示,滾動條向上回滾的時候隱藏向上的回到頂部按鈕,這種方式是最常用的方式:

1
2
3
<div class="goTop">
    <span>Go</span>
</div>

jQuery程式碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
function goTop(min_height) {
    $(".goTop").click(
        function() {
            $(`html,body`).animate({
                scrollTop: 0
            }, 700);
        });
    //獲取頁面的最小高度,無傳入值則預設為600畫素
    min_height=min_height?min_height:400;
    //為視窗的scroll事件繫結處理函式
    $(window).scroll(function() {
        //獲取視窗的滾動條的垂直位置
        var s = $(window).scrollTop();
        //當視窗的滾動條的垂直位置大於頁面的最小高度時,讓返回頂部元素漸現,否則漸隱
        if (s > min_height) {
            $(".goTop").fadeIn(100);
        else {
            $(".goTop").fadeOut(200);
        }
    });
}
 
 
$(function() {
    goTop();
});

 CSS程式碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//部落格園-FlyElephant
.goTop {
    height: 40px;
    width: 40px;
    background: red;
    border-radius: 50px;
    position: fixed;
    top: 90%;
    right: 3%;
    display: none;
}
 
.goTop span {
    color: #fff;
    position: absolute;
    top: 12px;
    left: 8px;
}

 以上就是常用的樣式,如有更好的方式,歡迎探討~

本文轉自Fly_Elephant部落格園部落格,原文連結:http://www.cnblogs.com/xiaofeixiang/p/5042463.html,如需轉載請自行聯絡原作者


相關文章