javascript - 使用滚动位置来切换按钮的可见性,使用 vanilla JavaScript(无 JQuery)。注重表现
问题描述
我有一个按钮可以从页面底部向上滚动:
<div id="scroll-to-top">
<a href="#head">
<i></i>
</a>
</div>
基本的 CSS:
#scroll-to-top {
position: fixed;
right: 0;
bottom: 5%;
width: 60px;
display: none;
}
#scroll-to-top.visible {
display: block;
}
我正在寻找一种最佳实践方法来切换#scroll-to-top 按钮的可见性。这应该在没有任何 JS-libraries/frameworks 的情况下工作,只需要 vanilla JavaScript,并且具有最佳性能。
谢谢。
解决方案
简单易行
<script>
const showButton = () => document.querySelector("#scroll-to-top").classList.add("visible");
const hideButton = () => document.querySelector("#scroll-to-top").classList.remove("visible");
document.addEventListener("scroll", (e) => window.scrollY < 100 ? hideButton() : showButton());
</script>
推荐阅读
- laravel-5.6 - LARAVEL_MethodNotAllowedHttpException
- python - 尝试使用 python-mysql-connector 建立与 Mysql 服务器的 SSL 连接时访问被拒绝
- linux-kernel - 如何在非中断上下文中定期调用函数?
- python - 以某种模式组织的解析文件
- linux - 复制包含单词但不包含其他单词的文件。/ grep 不适用于 for 循环
- android - 如何在不滚动的情况下直接降落在特定位置?
- android - 数据未插入 Sqlite 数据库,但行数正在增加
- c# - .NET Core 2.1 Web API 模拟导致 WSALookupServiceEnd 处理错误
- elasticsearch - elasticsearch 6.3.x 可以在 centos 7 上的 elasticsearch 以外的用户上运行吗?
- c# - 将数据从一个数据库复制到另一个数据库并使用 c# 在 Azure 上进行备份