js获取浏览器可视区或页面大小的兼容性总结
# 使用 JS 获取相关属性
document.body.clientWidth;//网页可见区域宽
document.body.clientHeight;//网页可见区域高
document.body.offsetWidth;//网页可见区域宽(包括边框的宽)
document.body.offsetHeight;//网页可见区域高(包括边框的高)
document.body.scrollWidth;//网页正文全文宽
document.body.scrollHeight;//网页正文全文高
document.body.scrollTop;//网页下滑的距离
document.body.scrollLeft;//网页左滑的距离
window.screen.height;//屏幕分辨率的高
window.screen.width;//屏幕分辨率的宽
window.screen.availHeight;//屏幕可用工作区的高
window.screen.availWidth;//屏幕可用工作区的高
window.innerWidth;//浏览器可视区域的内宽度,不包含浏览器边框,但包含滚动条
window.innerHeight;//浏览器可视区域的内高度
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 使用 JQ 获取相关属性
$(window).height() //;获取浏览器显示区域(可视区域)的高度
$(window).width(); //获取浏览器显示区域(可视区域)的宽度
$(document).height(); ///获取页面的文档高度
$(document).width(); //获取页面的文档宽度
$(document.body).height(); //浏览器当前窗口文档body的高度
$(document.body).width(); //浏览器当前窗口文档body的宽度
$(document).scrollTop(); //获取滚动条到顶部的垂直高度 (即网页被卷上去的高度)
$(document).scrollLeft(); //获取滚动条到左边的垂直宽度
$(obj).width(); //获取或设置元素的宽度
$(obj).height(); //获取或设置元素的高度
obj.offset().top; //返回当前元素的上边界到它的包含元素的上边界的偏移量(在元素的包含元素含滚动条的情况下)
obj.offset().left; //返回当前元素的左边界到它的包含元素的左边界的偏移量(在元素的包含元素含滚动条的情况下)
scrollTop();scrollLeft() ;//设置或返回已经滚动到元素的左边界或上边界的像素数。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 部分示例代码
let getPageSize = function () {
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 || document.documentElement.clientWidth) {
// 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 };
};
//调用方法
let size = getPageSize();
console.log('页面高度:' + size.PageH + ',可视区高度:' + size.WinH);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
上次更新: 2024/01/30, 00:35:17
- 01
- linux 在没有 sudo 权限下安装 Ollama 框架12-23
- 02
- Express 与 vue3 使用 sse 实现消息推送(长连接)12-20