jet*_*lej 66 javascript jquery scrolltop
一旦页面的滚动位置达到一定高度,我就会尝试做某事.然而scrollTop()返回0或null无论我滚动多远.这是我用来检查scrollTop()值的帮助功能:
$('body').click(function(){
var scrollPost = $(document).scrollTop();
alert(scrollPost);
});
Run Code Online (Sandbox Code Playgroud)
我试图连接scrollTop()到$('body'),$('html')当然$(window),但没有任何变化.
有任何想法吗?
jet*_*lej 109
出于某种原因,从我的html和body标签中删除"height:100%"修复了此问题.
我希望这有助于其他人!
Ver*_*rri 41
我在scroll = 0中遇到了同样的问题:
document.body.scrollTop
Run Code Online (Sandbox Code Playgroud)
下次使用
document.scrollingElement.scrollTop
Run Code Online (Sandbox Code Playgroud)
编辑01.06.2018
如果你使用event那么你得到了具有document元素的对象target或srcElement.
这是一个显示不同浏览器上的滚动操作的表.
正如你所看到的,Firefox和IE没有srcElement,IE 11也不支持scrollingElement.
我的解决方案,尝试上面的一些,并不涉及更改任何CSS:
var scroll_top = Math.max( $("html").scrollTop(), $("body").scrollTop() )
Run Code Online (Sandbox Code Playgroud)
这适用于Chrome,Firefox,IE和Edge的最新版本.
height: 100%;从 html 和 body 标签中删除可以解决这个问题。
原因是您可能已将 100% 设置为 html 和 body 元素的 height 属性值。如果将 html 和 body 元素的 height 属性设置为 100%,则它们的高度等于文档的高度。
小智 5
我只是为那些可能犯同样错误的人添加了一个附件.我的代码如下:
var p = $('html,body');
$( ".info" ).text( "scrollTop:" + p.scrollTop() );
Run Code Online (Sandbox Code Playgroud)
此代码适用于除了webkits浏览器(如chrome和safari)之外的所有浏览器,因为<html>标记的scrollTop值始终为零或null.
其他浏览器会忽略它,而webkit的浏览器则不会.
最简单的解决方法是从你的代码中移除html标签et Voila:
var p = $('body');
$( ".info" ).text( "scrollTop:" + p.scrollTop() );
Run Code Online (Sandbox Code Playgroud)