原生js 实现点击滚回/返回顶部 电梯导航栏效果

这个效果是点击某个元素 滚回到顶部 要求这个元素要超过可视区域的窗口高度 不然会隐藏
`

 window.onload = function () {
// =============
// 电梯导航
// =============
 // 获取窗口可视区域
var nClientHeight = document.documentElement.clientHeight
// 获取电梯导航元素 
var nElevatorBtn = document.getElementById('isFx');
// 设置一个布尔值 判断是否到达顶部
var isTop = true
// 设置一个定时器
var nTimer = null;
// 设置一个布尔值 判断是否到达顶部

// 滚动条滚动事件
window.onscroll = function () {
  // 获取滚动条的高度
  var nScrollTop = document.documentElement.scrollTop
  // 如果滚动条大于页面高度 显示电梯按钮
  // if (nScrollTop > nClientHeight) {
  //   nElevatorBtn.style.display = 'block'
  // } else {
  //   nElevatorBtn.style.display = 'none'
  // }
  // 现在因为页面高度不够 设置成滚动条有高度就显示
  if (nScrollTop) {
    nElevatorBtn.style.display = 'block'
  } else {
    nElevatorBtn.style.display = 'none'
  }
  // 如果手动滚动滚动条 清除回到顶部事件
  if (!isTop) {
    clearInterval(nTimer)
  }
  isTop = false;
}

// 回到顶部事件按钮事件
nElevatorBtn.onclick = function () {
  console.log(1111);

  nTimer = setInterval(() => {
    //获取滚动条的高度
    var nScrollTop = document.documentElement.scrollTop
    // 缓动上升
    var nStep = Math.floor(-nScrollTop / 6)
    document.documentElement.scrollTop = nScrollTop + nStep
    // 用来阻止滚动事件清除定时器
    isTop = true
    // 判断到顶部就停止
    if (nScrollTop == 0) {
      clearInterval(nTimer)
    }
  }, 30);
 }
}`
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值