JS与jQuery获取页面尺寸、滚动条及元素位置的方法

作者:闭包旅人

时间:2026-10-28

浏览:282

本文详细解析如何使用原生JavaScript和jQuery获取页面可视区域大小、文档总尺寸、滚动条当前位置以及元素的偏移量。涵盖不同浏览器兼容性的处理逻辑,包括IE6 Strict Mode等特殊场景,并提供具体的代码实现与参数说明,帮助开发者精准控制页面布局与交互。

文章目录

JavaScript与jQuery页面尺寸及位置获取方法

本文介绍如何利用JavaScript和jQuery获取页面尺寸、滚动条位置以及元素位置的方法。

具体实现代码如下:

//页面位置及窗口大小
function GetPageSize() {
var scrW, scrH; 
if(window.innerHeight && window.scrollMaxY) 
{ // Mozilla 
scrW = window.innerWidth + window.scrollMaxX; 
scrH = window.innerHeight + window.scrollMaxY; 
} 
else if(document.body.scrollHeight > document.body.offsetHeight)
{ // all but IE Mac 
scrW = document.body.scrollWidth; 
scrH = document.body.scrollHeight; 
} else if(document.body) 
{ // IE Mac 
scrW = document.body.offsetWidth; 
scrH = document.body.offsetHeight;
} 
var winW, winH; 
if(window.innerHeight) 
{ // all except IE 
winW = window.innerWidth; 
winH = window.innerHeight; 
} else if (document.documentElement && document.documentElement.clientHeight)
{ // IE 6 Strict Mode 
winW = document.documentElement.clientWidth; 
winH = document.documentElement.clientHeight; 
} else if (document.body) { // other 
winW = document.body.clientWidth; 
winH = document.body.clientHeight; 
} // for small pages with total size less then the viewport 
var pageW = (scrW<winW) ? winW : scrW; 
var pageH = (scrH<winH) ? winH : scrH; 
return {PageW:pageW, PageH:pageH, WinW:winW, WinH:winH};
};
//滚动条位置
function GetPageScroll() 
{ 
var x, y; if(window.pageYOffset) 
{ // all except IE 
y = window.pageYOffset; 
x = window.pageXOffset; 
} else if(document.documentElement && document.documentElement.scrollTop) 
{ // IE 6 Strict 
y = document.documentElement.scrollTop; 
x = document.documentElement.scrollLeft; 
} else if(document.body) { // all other IE 
y = document.body.scrollTop; 
x = document.body.scrollLeft; 
} 
return {X:x, Y:y};
}

jquery

获取浏览器显示区域的高度:$(window).height(); 获取浏览器显示区域的宽度:$(window).width(); 获取页面的文档高度:$(document).height(); 获取页面的文档宽度:$(document).width();

获取滚动条到顶部的垂直高度:$(document).scrollTop(); 获取滚动条到左侧的水平宽度:$(document).scrollLeft();

计算元素位置和偏移量 offset方法是一个很有用的方法,它返回包装集中第一个元素的偏移信息。默认情况下是相对body的偏移信息。结果包含 top和left两个属性。 offset(options, results) options.relativeTo 指定相对计 算偏移位置的祖先元素。这个元素应该是relative或absolute定位。省略则相对body。 options.scroll 是否把 滚动条计算在内,默认TRUE options.padding 是否把padding计算在内,默认false options.margin 是否把margin计算在内,默认true options.border 是否把边框计算在内,默认true

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章