javascript - 滚动后如何使我的滚动到顶部按钮出现
问题描述
我的滚动到顶部按钮工作得非常好,但我希望该按钮仅在向下滚动约 20 像素后出现。我以为我的 javascript 代码是问题,但在网上搜索后,我找到了相同的代码,但它仍然无法正常工作。相反,滚动 20 像素后,该按钮仅在我刷新时出现。我仍然不知道问题出在哪里,但我认为这是因为我使用的是 PHP 模型视图控制器 (MVC) 框架,因为我创建了一个测试 Html 文件并在那里尝试了相同的代码并且它有效。代码如下:
var scrollTop = document.getElementById("scrollTop");
window.onscroll = function(){
scrollfunction()
};
function scrollfunction(){
if( document.body.scrollTop > 20 || document.documentElement.scrollTop > 20){
scrollTop.style.display = "block";
} else {
scrollTop.style.display = "none";
}
}
scrollTop.addEventListener("click", function(){
window.scrollTo({
left: 0,
top: 0,
behavior: "smooth"
})
})
/*Scroll to top button*/
#scrollTop{
font-size: 380%;
right: 30px;
bottom: 30px;
width: 5%;
height: 10%;
text-align: center;
position: fixed;
border: 1px solid rgb(0, 0, 255);
background-color: rgb(183, 183, 255);
color: rgb(0, 0, 255);
cursor: pointer;
transition: 0.5s;
text-decoration: none;
}
#scrollTop:hover{
background-color: rgb(123, 123, 255);
transition: 0.5s;
}
#scrollTop:active{
background-color: rgb(0, 0, 148);
}
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<p>Some default text</p>
<button id="scrollTop">
<i class="fas fa-arrow-up"></i>
</button>
解决方案
只需将默认值添加display:none
到您的滚动顶部按钮,因此默认情况下它是隐藏的
您的其余代码看起来不错
var scrollTop = document.getElementById("scrollTop");
window.onscroll = function(){
scrollfunction()
};
function scrollfunction(){
if( document.body.scrollTop > 20 || document.documentElement.scrollTop > 20){
scrollTop.style.display = "block";
} else {
scrollTop.style.display = "none";
}
}
scrollTop.addEventListener("click", function(){
window.scrollTo({
left: 0,
top: 0,
behavior: "smooth"
})
})
.content{
height:2000px;
}
/*Scroll to top button*/
#scrollTop{
display:none;
font-size: 380%;
right: 30px;
bottom: 30px;
width: 5%;
height: 10%;
text-align: center;
position: fixed;
border: 1px solid rgb(0, 0, 255);
background-color: rgb(183, 183, 255);
color: rgb(0, 0, 255);
cursor: pointer;
transition: 0.5s;
text-decoration: none;
}
#scrollTop:hover{
background-color: rgb(123, 123, 255);
transition: 0.5s;
}
#scrollTop:active{
background-color: rgb(0, 0, 148);
}
<body>
<div class="content">
</div>
</body>
<button id="scrollTop">
<i class=""></i>
</button>
推荐阅读
- python - 未检测到文件图像
- oracle - 如何在 Oracle PL-SQL(或 sql-plus)的某些选择语句中使用变量
- ios - 将 OneSignalNotificationServiceExtension 添加到 Podfile 后颤振构建 ios 错误
- apache-kafka - 无法从 Drill 读取 kafka 主题
- ruby - 如何修复 SQLite3::ConstraintException:UNIQUE 约束失败:
- ios - Swift - Stretchy header 在 iOS 13 下不再工作
- python - 遍历python对象的路径语法
- node.js - 为什么 node js 比 chrome 慢?
- c# - 如何在 asp.net core 2.2 中为依赖注入注册 IFileProvider?
- c++ - 在 C++ 中使用赋值运算符重载将类对象的数据复制到另一个类对象时出错