我按照教程获得了一个粘性的“返回顶部”按钮,一旦向下滚动就会出现。出于某种原因,在页面首次加载后,当您位于页面顶部时,它会显示。如果向下滚动,然后一直向上,它就会消失(应该如此)。但最初它表现不佳。有什么想法吗?
以下是我正在使用的实时页面,您可以在右下角看到它:http://willryan.us
HTML
<a href="#" class="go-top" style="display: inline;">Back to top</a>
<script>
$(document).ready(function() {
// Show or hide the sticky footer button
$(window).scroll(function() {
if ($(this).scrollTop() > 200) {
$('.go-top').fadeIn(500);
} else {
$('.go-top').fadeOut(300);
}
});
// Animate the scroll to top
$('.go-top').click(function(event) {
event.preventDefault();
$('html, body').animate({scrollTop: 0}, 300);
})
});
</script>
CSS
.go-top {
position: fixed;
bottom: 0.75em;
right: 0.5em;
text-decoration: none;
color: white;
background-color: rgba(0, 0, 0, 0.25);
font-size: 12px;
padding: 10px;
display: none;
margin: 0;
}
.go-top:hover {
background-color: rgba(0, 0, 0, 0.6);
color: white;
text-decoration: none;
}
答案 0 :(得分:12)
从
更改HTML<a href="#" class="go-top" style="display: inline;">Back to top</a>
到
<a href="#" class="go-top" style="display: none;">Back to top</a>
这将首先隐藏您的按钮,直到您滚动。
答案 1 :(得分:6)
它正在显示,因为您还没有触发滚动事件,以使该逻辑运行以隐藏/显示它
<script>
$(document).ready(function() {
function checkPosition() {
if ($(this).scrollTop() > 200) {
$('.go-top').fadeIn(500);
} else {
$('.go-top').fadeOut(300);
}
}
// Show or hide the sticky footer button
$(window).scroll(checkPosition);
// Animate the scroll to top
$('.go-top').click(function(event) {
event.preventDefault();
$('html, body').animate({scrollTop: 0}, 300);
})
checkPosition();
});
</script>
这个新的重构器会在页面加载时至少触发checkPosition
一次,以确保按钮淡出。另一种解决方案是在元素的CSS中设置display: none;
,因此默认情况下它是隐藏的,之后只能通过javascript显示
答案 2 :(得分:1)
我用ntgCleaner用户说过并将html中的“display:inline”更改为“display:none”,它似乎有效。谢谢!