js怎么控制网页滚动到指定位置

JavaScript017

js怎么控制网页滚动到指定位置,第1张

使用scrollby(x轴,y轴)方法就可以使文档对象滚动到距离浏览器窗口坐标的指定位置上

注意事项

文档对象可以看做是网页所有可见内容的存储容器,网页所有可见内容称为页面

网页x轴坐标与数学一样,但是y轴坐标是相反的,向下是正数,向上是负数

页面移动出去的距离不能和滚动条移动出去的距离对等

滚动条移动出去多少像素才能等达到页面要移动出去的像素是根据整个页面的尺寸比例计算的

这个文档对象移动出去的距离在坐标系上是一定是负数,但是我们要用正数来表示他距离浏览器窗口0,0坐标的距离

这个方法移动的是文档对象和浏览器存储文档对象的窗口0,0位置坐标的距离,绝不是滚动条和文档对象的距离,

移动出去的距离就是文档对象不可见部分内容和浏览器存储文档对象的窗口0,0坐标的距离

这个方法使用scroll命名只是因为文档对象移动出去的距离需要滚动条滚动才能达到效果,便于记忆而已

scrollby()方法是window对象下的方法,document对象及其子对象没有该方法

document对象及其子对象如果要获取或设置元素内部内容滚动出去的距离,请使用scrollTop和scrollLeft, 注意该方法是计算的不可见部分移动出去的内容顶端距离容器的距离是从容器内边距开始计算,而不是边框

使用scrollby()必须存在滚动条,且有一定的高度才能看出方法的效果

可以这么试一下

在你的页面上某个位置放一个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>

这个可以用CSS实现

你可以用JS操作CSS

方法一:设置CSS属性overflow为hidden。

<body

style="overflow:hidden">

方法二:设置body元素的scroll属性为no。

<body

scroll="no">

如果只想隐藏横向或纵向上的滚动条,可以用overflow-x或overflow-y来设置。