JavaScript 检测页面底部在 Chrome 上则相反

标签 javascript jquery

我正在尝试对页面进行无限滚动,但测试我们是否位于页面底部的条件在 Chrome 上表现不正确。在 Chrome 上,此警报似乎在页面顶部触发,而不是在点击底部时触发。不过它在 IE11 上可以正常工作。

在 Chrome 上 $(document).height() 等于 0。我有 <!DOCTYPE html>如果重要的话,请在我的页面顶部添加 html。

奇怪的是,我从另一个例子中得到了这个,它在 Chrome 上的 jsfiddle 中完美运行:http://jsfiddle.net/nick_craver/gWD66/

$(window).scroll(function () {
        if ($(window).scrollTop() + $(window).height() == $(document).height()) {
            alert("test");
        }
    }
}

最佳答案

页面应用了哪种 CSS,尤其是 body 元素?可能是一些填充或边距使 $(document).height() 等于 $(window).scrollTop() 和 $(window).height() 的组合。以下代码将帮助您确定您是否真正满足 if() 标准。

您使用的 jQuery 版本是什么?

 $(window).scroll(function() {
   var scrollPosition = $(window).scrollTop() + $(window).height();
   var bodyHeight = $(document).height();
   $("#scrollIndex").html( scrollPosition + " / " + bodyHeight );
   if( scrollPosition == bodyHeight ) {
       $("#scrollIndex").html( "BOTTOM!" );
       $('body').height( bodyHeight + 200 + "px" );
   }
});
body{
	height:2000px;
}
#scrollIndex{
	position:fixed;
  	top:0px;
  	right:0px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id='scrollIndex'></div>

关于JavaScript 检测页面底部在 Chrome 上则相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25942240/

相关文章:

javascript - setTimeinterval 内的 Jquery setTimeout 不起作用

javascript - 使用 jQuery 按 id 更新占位符

jquery - 如何在 jQuery 中创建列表元素?

javascript - 如何在没有时间的情况下获取当前日期?

javascript - jQuery: ":checked"总是返回 true

javascript - 执行 ElementArrayFinder

javascript - 单击 overflow-y 内的 anchor 链接时如何防止页面向下滚动?

javascript - 在 Javascript 中使用 Jinja2 模板的最佳方式?

php - 我相信 jquery 增量导致错误的数字插入数据库

javascript - 单击元素外部时重置输入字段