原生js实现返回顶部缓冲效果
发布时间 - 2026-01-10 22:37:40 点击率:次运行原理

通过定时器30毫秒执行一次滚动条上升,每次上升的高度为当前高度的80%,这样就达到了上升缓冲的动画效果。
判断当滚动条高度超过一屏时,按钮显示,默认隐藏
知识要点
scrollTop//获取滚动条高度 需要写兼容 clientHeight//可视窗口高度 需要写兼容 setInterval//定时器 window.onscroll//滚动触发事件
完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>demo</title>
<style>
body,h1,h2,h3,h4,h5,h6,hr,p,blockquote,dl,dt,dd,ul,ol,li,pre,form,fieldset,legend,button,input,textarea,th,td{margin:0;padding:0;}
h1,h2,h3,h4,h5,h6{font-size:100%;}
address,cite,dfn,em,var{font-style:normal;}
code,kbd,pre,samp{font-family:courier new,courier,monospace;}
ul,ol{list-style:none;}
a{text-decoration:none;}
a:hover{text-decoration:none;}
sup{vertical-align:text-top;}
sub{vertical-align:text-bottom;}
legend{color:#000;}
fieldset,img{border:0;}
button,input,select,textarea{font-size:100%;}
table{border-collapse:collapse;border-spacing:0;}
.clear{clear: both;float: none;height: 0;overflow: hidden;}
.bg{background:#9B1BC5; width: 1000px; height: 3000px; margin: 0 auto;}
#gotop{width: 50px; height: 50px; background:#5490F5; color: #fff; position: fixed; left: 50%; bottom: 30px; text-align: center; font-family: "Microsoft Yahei",tahoma,arial; font-size: 14px; cursor: pointer; margin-left: 520px; display: none;}
#gotop span{display: block;padding: 5px;}
</style>
</head>
<body>
<div class="bg"></div>
<div id="gotop"><span>返回顶部</span></div>
<script type="text/javascript">
//在页面加载完后立即执行多个函数方案
function addloadEvent(func){
var oldonload=window.onload;
if(typeof window.onload !="function"){
window.onload=func;
}
else{
window.onload=function(){
if(oldonload){
oldonload();
}
func();
}
}
}
//在页面加载完后立即执行多个函数方案结束
addloadEvent(b);
function b(){
var gotop=document.getElementById("gotop");
var timer;
var tf=true;
//滚动触发
window.onscroll=function(){
//获取滚动条高度
var ostop=document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
//获取窗口可视区域高度
//console.log(ostop)
var ch=document.documentElement.clientHeight||document.body.clientHeight;
//如果页面超过一屏高度按钮显示,否则隐藏
if(ostop>=ch){
gotop.style.display="block";
}else{
gotop.style.display="none";
}
//
if(!tf){
clearInterval(timer);
}
tf=false;
}
//点击触发
gotop.onclick=function(){
//创建定时器
timer=setInterval(function(){
//获取滚动条高度
var ostop=document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
//每次上升高度的20%
var speed=Math.ceil(ostop/5);
//每次上升当前高度的80%
document.documentElement.scrollTop=document.body.scrollTop=ostop-speed;
//如果高度为0,清除定时器
if(ostop==0){
clearInterval(timer);
}
tf=true;
},30);
}
}
</script>
</body>
</html>
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!
# 原生js返回顶部
# js实现返回顶部
# 返回顶部
# 一个简单的弹性返回顶部JS代码实现介绍
# js+JQuery返回顶部功能如何实现
# javascript返回顶部效果(自写代码)
# js简单的点击返回顶部效果实现方法
# JS返回顶部实例代码
# javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
# javascript实现博客园页面右下角返回顶部按钮
# js实现返回顶部效果
# jQuery实现返回顶部功能适合不支持js的浏览器
# js实现带有动画的返回顶部
# 滚动条
# 多个
# 完后
# 加载
# 就达
# fieldset
# form
# li
# legend
# input
# button
# textarea
# hr
# blockquote
# ul
# ol
# dd
# dl
# dt
# kbd
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
Laravel如何实现文件上传和存储?(本地与S3配置)
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
如何快速生成专业多端适配建站电话?
Laravel如何发送系统通知?(Notification渠道示例)
Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】
个人摄影网站制作流程,摄影爱好者都去什么网站?
详解jQuery中基本的动画方法
大连网站制作费用,大连新青年网站,五年四班里的视频怎样下载啊?
Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程
Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程
Laravel如何实现URL美化Slug功能_Laravel使用eloquent-sluggable生成别名【方法】
php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】
EditPlus中的正则表达式实战(6)
如何用AI一键生成爆款短视频文案?小红书AI文案写作指令【教程】
Laravel如何记录自定义日志?(Log频道配置)
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
Laravel如何创建和注册中间件_Laravel中间件编写与应用流程
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】
如何快速搭建高效可靠的建站解决方案?
如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)
laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
PHP 实现电台节目表的智能时间匹配与今日/明日轮播逻辑
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
如何基于PHP生成高效IDC网络公司建站源码?
Laravel如何使用缓存系统提升性能_Laravel缓存驱动和应用优化方案
Linux后台任务运行方法_nohup与&使用技巧【技巧】
Laravel如何配置任务调度?(Cron Job示例)
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何在Tomcat中配置并部署网站项目?
如何用AI帮你把自己的生活经历写成一个有趣的故事?
香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南
如何快速生成凡客建站的专业级图册?
Laravel如何使用withoutEvents方法临时禁用模型事件
香港服务器如何优化才能显著提升网站加载速度?
详解Android——蓝牙技术 带你实现终端间数据传输
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
音响网站制作视频教程,隆霸音响官方网站?
Laravel Session怎么存储_Laravel Session驱动配置详解
高端智能建站公司优选:品牌定制与SEO优化一站式服务
Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南
Android okhttputils现在进度显示实例代码
公司门户网站制作流程,华为官网怎么做?
如何在景安云服务器上绑定域名并配置虚拟主机?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
php 三元运算符实例详细介绍
怎么用AI帮你为初创公司进行市场定位分析?

