跳转到内容
返回

浮动功能栏

关于命名

我也不知道这个具体的名字叫什么,就按照它的功能起了这么个简单的名字,防止说不清楚,大概解释一下是什么东西。就是在很多网页,我们往下滑时,会在页面的固定位置出现一个(一栏、一片等!)按钮,里面有帮助回到网页顶部的,还有联系网站客服等等的操作。

像这样 掘金

分析

问题

解决

用到的知识

css

position

js

scrollTop

scrollTo

onwheel

代码

CSS

...
/* 页面主要内容 */
.con {
  width: 100vw;
  /* 让页面出现滚动条 */
  height: 1100vh;
  background-color: lightcoral;
}
/* 浮动功能栏样式  */
.float {
  padding: 0;
  margin: 0;
  position: fixed;
  top: 70vh;
  right: 5vw;
  /* 默认不显示 */
  opacity: 0;
  z-index: 0;
  transition: all 0.5s;
}
/* 其他样式 */
li {
  width: 100px;
  height: 100px;
  text-align: center;
  line-height: 100px;
  list-style: none;
  background-color: #ffffff;
  border-radius: 50%;
  cursor: pointer;
}

HTML

<div class="con" id="con"></div>
<ul class="float" id="float">
  <li id="backtop">BACK</li>
</ul>

JS

let con = document.querySelector("#con");
let float = document.querySelector("#float");
let backtop = document.querySelector("#backtop");
// des:设置浮动功能栏的显示/隐藏
let set = function (op, zi) {
  float.style.opacity = op;
  float.style.zIndex = zi;
};
// 点击back返回顶部
backtop.addEventListener("click", function () {
  // 1.document.documentElement.scrollTop = 0;
  // 2.scrollTo返回
  scrollTo(0, 0);
  // 返回后隐藏
  set(0, 0);
});
// 这里更好的效果是换成window的滚动条事件,这样无论是鼠标滑轮还是,键盘翻页键,还是点击滚动条都可以触发
// window.addEventListener("scroll",***)
con.addEventListener("wheel", function () {
  // 获取可视区域宽高
  let viewHeight = document.documentElement.clientHeight;
  // 获取已经滚动条滚动了的高度
  let scrowHeight = document.documentElement.scrollTop;
  // 获取文档高
  let documentHeight = document.body.clientHeight;
  if (scrowHeight === 0) {
    // 隐藏按钮
    set(0, 0);
  } else {
    // 显示按钮
    set(10, 99);
  }
});


上一篇
网页浏览进度条
下一篇
动态设置背景图容器大小
×