首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript获取滚动窗口的X/Y位置

JavaScript获取滚动窗口的X/Y位置
EN

Stack Overflow用户
提问于 2010-08-12 13:03:29
回答 2查看 407.3K关注 0票数 231

我希望找到一种方法来获得当前可见窗口的位置(相对于总页面宽度/高度),这样我就可以使用它来强制从一个部分滚动到另一个部分。然而,在猜测哪个对象持有浏览器真正的X/Y时,似乎有大量的选择。

要确保IE 6+、FF 2+和Chrome/Safari正常工作,我需要这些工具中的哪一个?

代码语言:javascript
复制
window.innerWidth
window.innerHeight
window.pageXOffset
window.pageYOffset
document.documentElement.clientWidth
document.documentElement.clientHeight
document.documentElement.scrollLeft
document.documentElement.scrollTop
document.body.clientWidth
document.body.clientHeight
document.body.scrollLeft
document.body.scrollTop

还有其他的吗?一旦我知道窗口在哪里,我就可以设置一个事件链,它将缓慢地调用window.scrollBy(x,y);,直到它到达我想要的点。

EN

回答 2

Stack Overflow用户

发布于 2013-01-18 00:53:45

也许更简单;

代码语言:javascript
复制
var top  = window.pageYOffset || document.documentElement.scrollTop,
    left = window.pageXOffset || document.documentElement.scrollLeft;

致词:so.dom.js#L492

票数 223
EN

Stack Overflow用户

发布于 2015-02-28 06:56:40

代码语言:javascript
复制
function FastScrollUp()
{
     window.scroll(0,0)
};

function FastScrollDown()
{
     $i = document.documentElement.scrollHeight ; 
     window.scroll(0,$i)
};
 var step = 20;
 var h,t;
 var y = 0;
function SmoothScrollUp()
{
     h = document.documentElement.scrollHeight;
     y += step;
     window.scrollBy(0, -step)
     if(y >= h )
       {clearTimeout(t); y = 0; return;}
     t = setTimeout(function(){SmoothScrollUp()},20);

};


function SmoothScrollDown()
{
     h = document.documentElement.scrollHeight;
     y += step;
     window.scrollBy(0, step)
     if(y >= h )
       {clearTimeout(t); y = 0; return;}
     t = setTimeout(function(){SmoothScrollDown()},20);

}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3464876

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档