如何获得滚动条位置的Javascript?
我试图用JavaScript来检测浏览器滚动条的位置,以决定当前视图在页面中的位置。 我的猜测是,我必须检测到轨道上的拇指在哪里,然后拇指的高度占轨道总高度的百分比。 我是否过度复杂化,还是JavaScript提供了一个比这更简单的解决scheme? 任何想法代码明智?
您可以使用element.scrollTop
和element.scrollLeft
分别获取已滚动的垂直和水平偏移量。 element
可以是document.body
如果你关心整个页面。 如果你需要百分比,你可以将它与element.offsetHeight
和element.offsetWidth
进行比较(同样, element
可以是body)。
我在Chrome上为<div>
做了这个。
元素 .scrollTop – 由于滚动而隐藏在顶部的像素。 没有滚动它的值是0。
元素 .scrollHeight – 是整个div的像素。
元素 .clientHeight – 是您在浏览器中看到的像素。
var a = element.scrollTop;
将是这个位置。
var b = element.scrollHeight - element.clientHeight;
将是scrollTop的最大值 。
var c = a / b;
将是滚动的百分比[从0到1] 。
document.getScroll= function(){ if(window.pageYOffset!= undefined){ return [pageXOffset, pageYOffset]; } else{ var sx, sy, d= document, r= d.documentElement, b= d.body; sx= r.scrollLeft || b.scrollLeft || 0; sy= r.scrollTop || b.scrollTop || 0; return [sx, sy]; } }
返回一个有两个整数的数组 – [scrollLeft,scrollTop]
如果您使用的是jQuery,那么您有一个完美的function:.scrollTop()
doc here – > http://api.jquery.com/scrollTop/
注意:你可以使用这个函数来检索OR设置的位置。
另见: http : //api.jquery.com/?s = scroll