原生js、实现缓慢回到顶部效果

本文介绍了如何使用原生JavaScript实现一个平滑的返回顶部效果,涉及window对象、document对象的使用,以及滚动条信息获取、计时器的应用和Math对象的地板函数。通过设置滚动条事件和计时器,实现页面逐渐滚动回顶部的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原生js、实现缓慢回到顶部效果

1.Demo展示:

Alt

2 . Html布局:
	<!--返回顶部-->
	<div class="gotop">
		<img src="images/top/toTop.jpg">
	</div>
3. css样式表:
/*回到顶部*/
	.gotop{
		width:70px;
		height:70px;
		position:fixed;
		top:70%;
		right:50%;
		margin-right:-725px;
		display:none;
		cursor:pointer;
	}
	
	.gotop img{
		width:100%;
		height:100%;
	}
4. 原生js代码:
window.onload = function(){
		var divs = document.querySelector(".gotop");
		//获取可视区域的高度;
		var clientH = document.documentElement.clientHeight;
		var timer = null;
		var Ontop = document.documentElement.scrollTop || document.body.scrollTop;//兼容性设置;	

		window.onscroll = function() {
            //获得滚动条到顶部的距离
            Ontop = document.documentElement.scrollTop || document.body.scrollTop;//兼容性设置;
            if (Ontop > clientH * 2) {
                divs.style.display = "block";
            } else {
                divs.style.display = "none";
            }
            toTop(); //调用回到顶部函数;
        }
		
		//回到顶部函数;
		function toTop(){
			divs.onclick = function(){
			timer = setInterval(function(){ 	
				//让滚动条到顶部的距离自动缩减到0;
				document.documentElement.scrollTop = document.body.scrollTop = Math.floor(Ontop - 200);//兼容性设置;
				//设置定时器
					if(Ontop === 0 || document.documentElement.scrollTop === 0){
						clearInterval(timer);
					}
				},10);
			}
		}
	}

注:
其实,就是对常见的window对象和document对象的一些使用;

  • 可视区域的宽、高:
    document.documentElement.clientHeight;
    document.documentElement.clientWidth;

  • 滚动条的相关信息:
    document.documentElement.scrollTop;
    document.body.scrollTop(IE兼容);

  • 计时器的使用和清除:
    setInterval();
    clearInterval();

  • Math对象(向下舍入)
    Math.floor();

  • window.onscroll:滚动条事件(滚动时触发);

~如遇错误,欢迎指正;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

男孩子小杨

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值