zoukankan      html  css  js  c++  java
  • javascript实现网页返回顶部功能

    在浏览网页时,我们一般是拖动滚动条向下滑动,浏览下面的内容,当页面超过单页时,右下角会出现一个回到顶部的图标,有些网站这个图标一直显示在右下角的。

    有些网站使用锚链接来实现页面内容的跳转,但这种效果的用户体验比较差,因为是突然跳转,眼睛来不及反应。

    这里我们使用js实现页面返回顶部。为了使滚动条渐进地上移,我们需要使用定时器。同时通过不断改变滚动条顶部的高度来控制页面的变化。

    下面为具体代码实现

    index.html:

    <!DOCTYPE>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <link  rel="stylesheet" type="text/css" href="style.css"/>
        <script type="text/javascript" src="script.js"></script>
    </head>
    <body>
        <div class="box">
            <img src="tb_bg.jpg"/>
        </div>
        <a href="javascript:;" id="btn" title="回到顶部"></a>
    </body>
    </html>

    style.css:

    .box {
        width:1190px;
        /*图片居中*/
        magin:0 auto;
    }
    
    #btn {
        width:40px;
        height:40px;
        /*设置固定位置*/
        position:fixed;
        left:50%;
        margin-left:610px;
        bottom:30px;
        background:url(top_bg.png) no-repeat left top;
    }
    
    /*鼠标浮动切换图片效果*/
    #btn:hover {
        background:url(top_bg.png) no-repeat 0 -40px;
    }

    script.js:

    /**
     * Created by lujie on 2016/11/15.
     */
    
    //页面加载完毕后触发
    window.onload = function () {
        var obtn = document.getElementById('btn');
        var timer = null;
        var isTop = true;
    
        //滚动条滚动时触发
        window.onscroll = function () {
            if(!isTop){
                clearInterval(timer);
            }
            isTop = false;
        }
        obtn.onclick = function () {
            //设置定时器
            timer = setInterval(function () {
                //滚动条距离顶部的高度
                var osTop = document.documentElement.scrollTop||document.body.scrollTop;
                var isSpeed = Math.ceil(osTop/6);
                document.documentElement.scrollTop = document.body.scrollTop = osTop-isSpeed;
    
                isTop = true;
                if(osTop == 0){
                    clearInterval(timer);
                }
            },30);
        }
    }

    注:IE浏览器滚动条顶部的高度:document.documentElement.scrollTop

    谷歌浏览器滚动条顶部的高度:document.body.scrollTop

  • 相关阅读:
    Go实现线程池
    Go语言工程结构
    Go语言示例-函数返回多个值
    Go语言参数中的三个点是干什么的
    go语言示例-Timer计时器的用法
    Go语言的类型转化
    iOS 修改通讯录联系人地址(address)崩溃原因分析
    tableview小结-初学者的问题
    Objective-C总Runtime的那点事儿(一)消息机制
    论坛源码推荐(11.6):iPhone6/6 plus屏幕适配Demo,Java代码转Objective-C
  • 原文地址:https://www.cnblogs.com/sMKing/p/6071409.html
Copyright © 2011-2022 走看看