CSS-返回頂部代碼


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

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

 

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

 

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

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

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

 <a onclick="goScrollTop()">JavaScript緩慢向上滑動</a>
    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.當滾動條滾動到一定位置的時候顯示,滾動條向上回滾的時候隱藏向上的回到頂部按鈕,這種方式是最常用的方式:

    <div class="goTop">
        <span>Go</span>
    </div>

jQuery代碼:

    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代碼:

    //博客園-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;
    }

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM