第一个小demo页面返回顶部

1.demo要求:点击按钮之后可以由快到慢地回到顶部,处于顶部位置时按钮消失,按钮位于页面右下方。

2.设计思路:

a:首先是在右下角设置号一个向上返回顶部的按钮,可以用粘性定位,将其固定在右下角。如下代码:

 <div id="box">
            <button id="btn">
            <img src="a58.png" alt="" style="width: 39px; height: 39px;">
        </button>
    </div>

css样式为:

div{
            position: fixed;
            right: 0;
            bottom: 0;
            width: 39px;
            border: 1px solid black;
        }

效果图:

b:接下来就是用js代码来还原其功能了:

 1.需要用到的核心知识点:

Window.scrollBy() 方法在窗口中按指定的偏移量滚动文档。

 参数:

  • x-coord 是你想滚动的水平像素值。
  • y-coord 是你想滚动的垂直像素值。

top

指定沿 Y 轴滚动窗口或元素的像素数。

left

指定沿 X 轴滚动窗口或元素的像素数。

behavior

指定滚动是否应该平滑(smooth)、瞬时运动到该位置(instant)、或者让浏览器选择(auto,默认)。

 2.具体设计:

首先是给页面设计一个足够的高度,并清除页面边距

*{
            margin: 0;
            padding: 0;
        }
        html,body{
            height: 10000px;
        }

然后就是js代码的编写:

首先给滚动条绑定一个函数:方法为加上一个

window.onscroll = function(){}

 只要滚动条滑动就会执行函数

然后再在此函数内部再创建一个函数与返回顶部按钮进行绑定:

btn.onclick = handle
            function handle(){
                 var m = 20
            
                var timer = setInterval(function(){
                    m--;
                    if(m == 0) {
                        clearInterval(timer)
                        m=20
			        } else{
                        window.scrollBy({
                        right:0,
                        top:-(1506*m),
                        behavior:"smooth",
                    })
                    }
                } ,60)
            }

在这里我们可以设置一个间隔计时器用相同时间内滚动条所走过的距离逐渐递减来显示滚动条的由快到慢的效果,这里就要用到window.scrollBy方法,设置滚动条单次向上滑动到的位置。最重要的是滑动效果的设置,设置成平滑就可以显得十分流畅,而不是一顿一顿的。为了保证每次滑动的距离不一样,还需要提前定义一个变量并赋上初值,并在计时器内部设置上自减。最后为了保证滚动条的返回效果可以多次使用,还要用if语句判断滚动条的位置,这里是用定义并赋值的变量自减至0来判断的,这时就要停止计时器函数的继续执行,用上clearInterval,清除间隔计时器,并将赋值的变量重新赋予其初始值以达到重置效果。

对于滚动条滑动到顶部消失的效果则可以用if语句判断滚动条的状态并执行相应代码。

if(Math.round(scrollTop)>300){
                    document.getElementById("btn").style.display="block";
            }else{
                document.getElementById("btn").style.display="none";
            }

这里的判断条件是滚动条距离顶部的距离,所以想要调用首先得定义一下该变量

var scrollTop = document.documentElement.scrollTop || document.body.scrollTop

当条件成立就可以修改其按钮样式为block,不成立即滑动到顶部则改为none就实现了。 

最终效果视频展示:

屏幕录制 2023-11-16 125015

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值