01.demo 返回顶部(js小训练)

要求:点击之后页面由快到慢返回顶部

效果图展示

html部分

写出一个按钮 并为其命名 这里我个人又添加了一个图片 方便其确认顶部

xml 复制代码
<!-- html -->
    <button id="backToTopBtn" onclick="scrollToTop()">返回顶部</button>
    <img src="./QQ图片20231029195645.gif" alt="">

css部分

xml 复制代码
 <style>
  #backToTopBtn 
{
  display: none;
  position: fixed;
  bottom: 20px;
  right: 20px;
  width: 80px;
  height: 40px;
  background-color: #333;
  color: #fff;
  border: none;
  border-radius: 5px;
  cursor: pointer;
  font-size: 14px;
  opacity: 0.7;
}

#backToTopBtn:hover 
{
  opacity: 1;
} 
body{
    height: 3000px;
}
img{
  height: 320px;
  width: 480px;
  position: absolute;
  top: 0px;
  left: 600px;
}
    </style>

无需多言,都能看懂,就是一个fixed定位以及一些css基础样式编辑

js部分

首先设置一个函数 绑定一个按钮

ini 复制代码
 window.onscroll = function() {
        scrollFunction();
};

function scrollFunction() {
  var backToTopBtn = document.getElementById("backToTopBtn");

第二步写出一个if else结构来判断是否超过500px来显示按钮

ini 复制代码
function scrollFunction() {
  var backToTopBtn = document.getElementById("backToTopBtn");

  // 当滚动超过 500 像素时显示按钮
  if (document.body.scrollTop > 500 || document.documentElement.scrollTop > 500) {
    backToTopBtn.style.display = "block";
  } else {
    backToTopBtn.style.display = "none";
  }
}

第三步要写出一个由快到慢的效果则需要设置一个定时器 并监听其滚动距离 最后到达顶部时清除定时器即可

ini 复制代码
function scrollToTop() {
  //  由快到慢 (每次开启定时器都重新计算速度)

timer = setInterval( function(){

//获取滚动条的滚动高度

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

//用于设置速度差,产生缓动的效果

var speed = Math.floor(-scrollTop / 8);

document.documentElement.scrollTop = document.body.scrollTop = scrollTop + speed;//用纯数字赋值

isTop =true; //用于阻止滚动事件清除定时器

if(scrollTop == 0){
clearInterval(timer);
}
},30 );
}

结束

相关推荐
GreenTea6 小时前
GrokBot 核心成员 Lauren Tan:每月交付 2000 个 PR 的人,是怎么用 AI 的
前端·后端·架构
mCell7 小时前
用 Knip 清理 AI Coding 留下的冗余代码
前端·ai编程·前端工程化
笃行3508 小时前
使用Rokid AIUI做了一个童年推箱子游戏
前端
excel9 小时前
前端加密的作用与使用场景
前端
计算机魔术师10 小时前
纽约时报版权诉讼披露:微软高管内部称训练 AI 是人类历史上最大规模劳动窃取
前端
去伪存真11 小时前
大模型的参数量为什么那么大?
前端·人工智能
IT_陈寒11 小时前
Java空指针这次真把我坑惨了
前端·人工智能·后端
高级程序源12 小时前
django大学生创新创业项目管理系统94923-计算机课程设计、毕业设计
javascript·vue.js·spring boot·后端·python·django·课程设计
八荒启·交互动画12 小时前
# Web特效020—让 Web 特效真正动起来:时间循环应该怎么接
前端·webgl·网页特效·八荒启-交互动画·八荒启
动恰客流统计12 小时前
线下零售数字化浪潮下,客流统计的3个核心发展趋势
大数据·前端·人工智能