codecamp

window属性:pageYOffset

pageYOffset属性

Window的只读属性pageYOffset是scrollY的一个别名,因此,它会返回文档当前沿垂直轴(即向上或向下)滚动的像素数,其值为0.0,表示该Document的顶部边缘当前与窗口内容区域的顶部边缘对齐。 

对 pageYOffset 的支持比对旧浏览器中的scrollY稍好一些,但如果您不关心浏览器的问题,则可以使用其中一种。

相应的pageXOffset属性返回沿水平轴(左和右)滚动的像素数,是scrollX的别名。

pageYOffset属性语法

yOffset = window.pageYOffset;

pageYOffset属性值

一个浮点数,用于指定Document在其包含Window中垂直滚动的像素数。这个数字是亚像素精确的,所以它可能不是一个整数。值为0.0表示窗口不是垂直滚动的,并且文档的顶部位于窗口内容区域的顶部边缘。

由于此属性是别名Window.scrollY,请参阅该文章以获取有关此值及其用法的更多详细信息。

pageYOffset属性示例

在此示例中,创建<iframe>并填充它的内容,然后将文档中的特定元素滚动到框架中的视图中。一旦完成,通过查看框架contentWindow中的pageYOffset值来检查垂直滚动位置。

HTML

HTML非常简单,只有两个元素:一个<iframe>包含我们要滚动的文档,一个<div>我们将pageYOffset在完成滚动时输出值。

<iframe id="frame">
</iframe>

<div id="info">
</div>

JavaScript

var frame = document.getElementById("frame");
var frameDoc = frame.contentDocument;
var info = document.getElementById("info");

var target = frameDoc.getElementById("overview");
frameDoc.scrollingElement.scrollTop = target.offsetTop;

info.innerText = "Y offset after scrolling: " +
                 frame.contentWindow.pageYOffset + " pixels";

JavaScript代码首先进入frame,并info一个包含内容的<iframe>元素以及我们将输出我们的滚动位置检查的结果的<div>元素。然后它获得对我们想要滚动到框架HTMLIFrameElement.contentDocument上的视图调用getElementById()的元素的引用。

随着在手的目标元素,我们将框架scrollingElement的scrollTop设置为目标元素的offsetTop。通过这样做,我们设置了框架文档的垂直滚动位置,以便它与目标元素的顶部边缘相同。

如果尝试滚动超过最大值,这将自动将滚动位置设置为最大可能值。这可以防止我们脱离文档的边缘。

结果

请注意,在该示例的结果中,该框架的内容将被滚动以显示名为“Overview”的部分,并且该pageYOffset属性的值将与相应的值一起显示。

规范

规范 状态 注释
CSS对象模型(CSSOM)视图模块
该规范中'window.pageYOffset'的定义。
Working Draft
 

浏览器兼容性

电脑端 移动端
Chrome
Edge
Firefox
Internet Explorer
Opera
Safari
Android webview
Chrome for Android
Edge Mobile Firefox for Android
Opera for Android
iOS Safari
基本支持 支持 支持 支持 支持:9 支持 支持 支持 支持 支持
window属性:outerWidth
window属性:parent
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Fetch API官方文档指南

Fetch API方法

WindowOrWorkerGlobalScope执行者:window

window属性

WindowOrWorkerGlobalScope执行者:WorkerGlobalScope

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }