点击按钮返回页面顶部

作者: 雅雅的前端工作学习 | 来源:发表于2019-02-13 09:35 被阅读10次

原理:点击按钮返回顶部效果(js):用了一个定时器,每30ms滚动条的位置上移一点,上移的距离越来越小,越靠近顶部上移的速度越慢,当滚动条距离顶部为0 ,删除定时器;或者在返回顶部的过程中用户移动滚动条,结束返回顶部效果,删除定时器,在当前页面停下来。
下面给个小demo,大家也可以自己试一试

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
        <title>测试</title>
    <style>
        div.a{

            width:300px;
            height:10000px;
        }
        div.b{
            width:100%;
            height:950px;
            position:relative;
            background:yellow;
        }
        #btn{
            position: fixed;
            bottom:20px;
            right:20px;
            width:100px;
            height:100px;
            border:1px solid red;
            display: none;
        }
    </style>
</head>
<body>
<div class='a'>
    <div class='b'></div>
</div>
<div id="btn">返回顶部</div>
<script>
    window.onload = function(){
        var btn = document.getElementById('btn');
        var timer = null;
        var isTop = true;
        //获取页面可视区高度
        var clientHeight = document.documentElement.clientHeight;
        console.log(clientHeight)

        //滚动条滚动时触发
        window.onscroll = function() {
            //显示回到顶部按钮
            var osTop = document.documentElement.scrollTop || document.body.scrollTop;
            if (osTop >= clientHeight) {
                btn.style.display = "block";
            } else {
                btn.style.display = "none";
            };
            //回到顶部过程中用户滚动滚动条,停止定时器
            if (!isTop) {
                clearInterval(timer);
            };
            isTop = false;

        };

        btn.onclick = function() {
            //设置定时器
            timer = setInterval(function(){
                //获取滚动条距离顶部高度
                var osTop = document.documentElement.scrollTop || document.body.scrollTop;
                console.log('osTop '+osTop);
                var ispeed = Math.floor(-osTop / 7);
                console.log('ispeed '+ispeed);
                document.documentElement.scrollTop = document.body.scrollTop = osTop+ispeed;
                //到达顶部,清除定时器
                if (osTop == 0) {
                    clearInterval(timer);
                };
                isTop = true;

            },30);
        };
    };
</script>
</body>

相关文章

  • jQuery点击锚点平滑滚动

    点击锚点平滑滚动到相应页面位置: .. "返回顶部"按钮效果:向下滚动页面出现 按钮,点击返回顶部。 …………EN...

  • js 返回页面顶部(动画)

    js 返回到页面顶部,含有渐变或者动画效果 点击返回顶部按钮,页面逐渐向上回到顶部: js 返回到页面顶部,直接返...

  • 点击按钮返回页面顶部

    原理:点击按钮返回顶部效果(js):用了一个定时器,每30ms滚动条的位置上移一点,上移的距离越来越小,越靠近顶部...

  • 【微信小程序】返回顶部组件

    点击返回组件的按钮,返回至页面顶部。按照之前讲的组件创建步骤,创建组件 调用页面:

  • 微信小程序——导航

    关闭当前页面,跳转到应用内的某个页面,如果点击顶部的返回按钮,则返回到第一个页面。如:A navigateTo ...

  • firefox浏览器下$("body").s

    最近在写一个当页面滚动到一定位置时,页面右下角出现一个 “返回顶部的按钮”,点击后返回页面最顶部位置。 一开始我是...

  • jquery滑到底部、返回顶部

    当页面有滚动条时,显示滑到底部,点击对应按钮到底部 到底部时,点击返回顶部 滚动到顶部和底部之间时,显示滑到底部、...

  • 页面中的‘返回顶部’(位置固定,指定位置显示/隐藏)

    在页面中经常需要使用到返回顶部按钮,如果页面内容过多过长,手动滑动滚动条比较麻烦,所以一般会出现返回顶部按钮,一键...

  • 11. 页面跳转返回,并回传值

    1. 跳转返回后,接收子页面传来的值 这次我们在父级页面,点击按钮,进入子页面,点击子页面的不同按钮,返回父页面的...

  • 移动端的返回顶部悬浮按钮还需要存在吗?

    一、 返回顶部悬浮按钮的出现返回顶部悬浮按钮大家都不陌生,在pc端浏览网页的时候都会在右下角出现,方便用户点击后...

网友评论

    本文标题:点击按钮返回页面顶部

    本文链接:https://www.haomeiwen.com/subject/zjrreqtx.html