这一定是一些愚蠢的错误但是在我的javascript函数中,当我到达屏幕底部时应该执行的if
语句,当我到达屏幕顶部时执行...
这是我的代码:
$(window).scroll(function() { //detect page scroll
if($(window).scrollTop() + $(window).height() == $(document).height()) //user scrolled to bottom of the page?
{
$('.animation_image').show(); //show loading image
}
});
.animation_image
是一个加载图片,应该在我到达屏幕底部时显示,但在我向下滚动然后返回到屏幕顶部时显示...
如果有人能解释我做错了什么,那就太好了!
答案 0 :(得分:0)
它应该正常工作。虽然只是出于好奇,但这段代码永远不会隐藏图像。难道你还有其他地方可以隐藏它吗? 你去,小提琴https://jsfiddle.net/3eg18L8u/
$(window).scroll(function() { //detect page scroll
if($(window).scrollTop() + $(window).height() == $(document).height()) //user scrolled to bottom of the page?
{
$('.animation_image').show(); //show loading image
}
else {
$('.animation_image').hide(); //show loading image
}
});
答案 1 :(得分:0)
你试过> =而不是==?
if ($(window).scrollTop() + $(window).height() >= $(document).height())
{
$('.animation_image').show(); //show loading image
}
怎么样:
$(document).ready(function(){
$(window).scroll(function(e){
e.stopPropagation();
e.preventDefault();
var scrollBottom = $(document).height() - $(window).scrollTop() - $(window).height();
if (scrollBottom == 0) {
$('.animation-image').show();
}
});
});
答案 2 :(得分:0)
我似乎无法理解为什么即使在你们所有人的帮助下也无法工作,所以我放弃了并决定使用这个代码,这不是解决方案,而是更多的选择:
function yHandler(){
var wrap = document.getElementById('wrap');
var contentHeight = wrap.offsetHeight;
var yOffset = window.pageYOffset;
var y = yOffset + window.innerHeight;
if(y >= contentHeight){
$('.animation_image').show();
}
var status = document.getElementById('status');
status.innerHTML = contentHeight+" | "+y;
}window.onscroll = yHandler
使用如下html内容结构:
<body>
<div id="status">0 | 0</div>
<div id="wrap">
*ALL CONTENT*
</div>
</body>
和CSS:
div#status{position:fixed; font-size:24px;}