JS如何判断浏览器滚动条的位置

JavaScript033

JS如何判断浏览器滚动条的位置,第1张

可以这么试一下

在你的页面上某个位置放一个div或者就用你页面上已有的某个元素也行,当用户滚动的时候这个div相对于浏览器的顶部或底部的距离肯定会变化,然后你通过这个距离来判断用户浏览到当前页面的什么位置了。

参考一下,我没试过....

<!DOCTYPE html>

<html>

<head>

<title></title>

<meta http-equiv="Content-Type" content="text/htmlcharset=UTF-8">

<script type="text/javascript">

function a(){

var st = document.documentElement.scrollTop//滚去的高度

var ch = document.documentElement.clientHeight//窗口的高度

var at = document.getElementById("a").offsetTop//元素离页面顶部的高度

var v = ch - (at - st)//元素离窗口底部的高度,为负的话表示元素还在窗口底部下面

alert("距离底部的高度为:"+v)

}

</script>

</head>

<body>

<div>

test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/><input type="button" value="test" onclick="a()"/>

test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/><input type="button" value="test" onclick="a()"/>

test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/><input type="button" value="test" onclick="a()"/>

test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/><input type="button" value="test" onclick="a()"/>

test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/><input type="button" value="test" onclick="a()"/>

<div id="a" style="width:100pxheight:1pxbackground-color: red"></div>

test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/>test<br/><input type="button" value="test" onclick="a()"/>

</div>

</body>

</html>

获取滚动条位置:

document.body.scrollTop (滚动条离页面最上方的距离)

document.body.scrollLeft (滚动条离页面最左方的距离)

document.documentElement.scrollTop (滚动条离页面最上方的距离)

document.documentElement.scrollLeft (滚动条离页面最左方的距离)

判断滚动条距离顶部的像素:$('body').scrollTop()

//判断一次

alert($('body').scrollTop())

//在滚动时判断(实时判断)

$('body').on('scroll',function(){

    console.log($(this).scrollTop())//输出到控制台

})