$(document).scrollTop()总是返回0
一旦页面的滚动位置达到一定高度,我只是试图做一些事情。 然而, scrollTop()
返回0或null
无论我滚动多远。 这是我用来检查scrollTop()
值的帮助函数:
$('body').click(function(){ var scrollPost = $(document).scrollTop(); alert(scrollPost); });
我已经试过将scrollTop()
附加到$('body')
, $('html')
,当然还有$(window)
,但没有任何变化。
有任何想法吗?
由于某些原因,从我的html和body标签中删除“height:100%”解决了这个问题。
我希望这可以帮助别人!
我有同样的问题与滚动= 0在:
document.body.scrollTop
下次使用
document.scrollingElement.scrollTop
编辑20.10.2017:
总是是'但是',IE 11不支持scrollingElement
所以使用
document.documentElement.scrollTop
对于那些可能和我犯同样错误的人,我只是附加一个。 我的代码如下:
var p = $('html,body'); $( ".info" ).text( "scrollTop:" + p.scrollTop() );
这个代码可以在所有的浏览器上运行,除了Chrome浏览器和safari之类的webkit浏览器,因为<html>
标签总是有一个scrollTop值为零或为空的。
其他浏览器忽略它,而webkit的浏览器则没有。
最简单的解决方法就是从您的代码中移除html标签et Voila:
var p = $('body'); $( ".info" ).text( "scrollTop:" + p.scrollTop() );
我的解决scheme,尝试了一些以上,而不涉及改变任何CSS:
var scroll_top = Math.max( $("html").scrollTop(), $("body").scrollTop() )
这适用于最新版本的Chrome,Firefox,IE和Edge。
有同样的问题。 scrollTop()适用于某些不是文档或正文的块。 要使这个方法工作,你应该为你的块添加高度和溢出风格:
#scrollParag { height: 500px; overflow-y: auto; }
接着:
var scrolParag = document.getElementById('scrollParag'); alert(scrolParag.scrollTop); // works!
Scroll Top对我来说总是返回0。 我正在使用它将焦点集中到页面上的特定元素。 我用另一种方法来做到这一点。
的document.getElementById( “elementID”)scrollIntoView();
在手机,平板电脑和桌面上为我工作的很好。
顺便说一下,你似乎应该使用
$("body").scrollTop()
代替
$(".some-class").scrollTop
这就是为什么我卡住了。
去除height: 100%;
从html和body标签可以解决这个问题。
原因是:
原因是你可能已经设置了100%作为html和body元素的height属性的值。 如果将html和body元素的height属性设置为100%,则它们的高度等于文档的高度。
看到这个: http : //www.mentfri.com/2017/11/jquery-scrolltop-returns-0/