通常会涉及到这样的交互:
1. 用户下拉浏览当前页面的内容
2. 然后从页面上的链接跳转到其他的页面上,
3. 用户操作返回
在返回的时候,往往会停留在初始浏览的位置。想要返回时停留在页面顶部,可以这样实现:
window.scrollTo(0, 0);
作用:把内容滚动到指定的坐标。
语法:
scrollTo(xpos,ypos)
参数 | 描述 |
---|---|
xpos | 必需。要在窗口文档显示区左上角显示的文档的 x 坐标。 |
ypos | 必需。要在窗口文档显示区左上角显示的文档的 y 坐标。 |
还有一个应用场景:
1.用户滚动到页面一定的距离后,控制隐藏或者显示某些交互行为
下边代码:当滚动的纵坐标超过700像素时,可做一些相应的操作
了解一下这几个的用法:
document.documentElement.scrollTop:获取当前页面的滚动条纵坐标位置,documentElement代表HTML
pageXOffset 和 pageYOffset:属性返回文档在窗口左上角水平和垂直方向滚动的像素。
document.body.scrollTop:对应body标签
window.onscroll = () => {
let scrollTop =
document.documentElement.scrollTop ||
window.pageYOffset ||
document.body.scrollTop;
if (scrollTop > 700) {
} else {
}
}
为什么要三个值一起用?原因在于:
.各浏览器下 scrollTop的差异:
IE6/7/8:
可以使用 document.documentElement.scrollTop
;
IE9及以上:
可以使用window.pageYOffset
或者document.documentElement.scrollTop
IE11亲测:
Safari:
safari: window.pageYOffset
与document.body.scrollTop都可以;
Firefox:
火狐等等相对标准些的浏览器就省心多了,直接用window.pageYOffset 或者 document.documentElement.scrollTop
;
火狐浏览器下:
Chrome:
谷歌浏览器说是只认识document.documentElement.scrollTop,经测试,window.pageYOffset也是能够支持的
谷歌浏览器下:
有问题,亲自实践比较合适,IE、谷歌、火狐都能够当场试出来。