首頁  >  文章  >  web前端  >  css實現快速回到頂部效果

css實現快速回到頂部效果

王林
王林轉載
2020-05-20 09:19:486414瀏覽

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(&#39;goScrollTop()&#39;, 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() {
            $(&#39;html,body&#39;).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程式碼:

.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;
}

推薦教學:css快速入門

想要下載回到頂部效果程式碼,可造訪:回到頂部程式碼 欄位!

以上是css實現快速回到頂部效果的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:jb51.net。如有侵權,請聯絡admin@php.cn刪除