Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 跨浏览器:仅检测滚动位置_Javascript_Html_Scroll_Horizontal Scrolling_Vertical Scrolling - Fatal编程技术网

Javascript 跨浏览器:仅检测滚动位置

Javascript 跨浏览器:仅检测滚动位置,javascript,html,scroll,horizontal-scrolling,vertical-scrolling,Javascript,Html,Scroll,Horizontal Scrolling,Vertical Scrolling,我到处寻找这个问题的答案,终于找到了。我写这篇文章是希望为未来的程序员节省很多时间和挫折 如果您希望看到添加的内容或有任何问题,请在下面进行评论,我将添加。随着人们提出问题,这将成为一个更完整的答案。这是一个在三大浏览器、Chrome和Firefox上查找/检测滚动条位置的解决方案。如果您发现这些浏览器的某个版本不起作用,请告诉我,我将编辑此答案以包含该信息 Older versions of chrome: var scrollTop = document.body.scrollTop; //

我到处寻找这个问题的答案,终于找到了。我写这篇文章是希望为未来的程序员节省很多时间和挫折


如果您希望看到添加的内容或有任何问题,请在下面进行评论,我将添加。随着人们提出问题,这将成为一个更完整的答案。

这是一个在三大浏览器、Chrome和Firefox上查找/检测滚动条位置的解决方案。如果您发现这些浏览器的某个版本不起作用,请告诉我,我将编辑此答案以包含该信息

Older versions of chrome:
var scrollTop = document.body.scrollTop; //Chrome
var scrollLeft = document.body.scrollLeft; //Chrome

Chrome > v.78.0.3904.97 (That I know of)
var scrollTop = window.scrollY; //Chrome
var scrollLeft = window.scrollX; //Chrome

Other Browsers:
var otherScrollTop = document.documentElement.scrollTop; //IE & Firefox
var otherScrollLeft = document.documentElement.scrollLeft; //IE & Firefox
这些变量将检测整个页面的滚动位置

正如@Eloy Pineda提到的:您可以使用以下工具更简洁地编写此内容:

var scrollTop = window.scrollY || document.body.scrollTop || document.documentElement.scrollTop;
var scrollLeft = window.scrollX || document.body.scrollLeft || document.documentElement.scrollLeft;

如果你真的认为这可以帮助任何人,并且出于这个原因你写了它,那么你应该粘贴解决方案作为答案,毫无疑问,你的心在正确的地方:-只有你的解决方案不是…而且,您需要将其标记为已接受,以获得答案效果…我已将解决方案移至答案部分。谢谢我两天内无法接受自己的答案,所以。。。在那之前。如果我已经纠正了你投我反对票的问题,请投我支持票。我投了这个,然后使用jquery,如中所示。如果其他人遇到这个问题,可能是一个选项jQuery肯定会让它变得更容易。当时我正处于一个需要一个只使用JavaScript的解决方案的位置。谢谢你的投票@好的,回答得很好。我同意这是今天最好的解决办法。只需添加两个小东西:1我认为您可以在一行中使其更加简洁:var scrollTop=document.body.scrollTop | | document.documentElement.scrollTop;。2我认为这将在IE9+上起作用,也许不是特别重要,但我认为值得一提的是:我认为这不再有效。在Chrome document.body.scrollTop中,我总是返回0。@flyingL123我已经更新了我的答案。谢谢你指出这一点。