网页宽度和高度获取,常常用在网页适配和后台管理系统中,针对不同的设备大小进行不同样式的展示,而使用原生的获取方式,在Vue等组件中也能正常使用,可以有效解决特定的适配场景
获取窗口高度宽度
/**
* 获取窗口高度
*/
getWinHeight() {
let winWidth
let winHeight
// 获取窗口宽度
if (window.innerWidth) {
winWidth = window.innerWidth
} else if ((document.body) && (document.body.clientWidth)) {
winWidth = document.body.clientWidth
}
// 获取窗口高度
if (window.innerHeight) {
winHeight = window.innerHeight
} else if ((document.body) && (document.body.clientHeight)) {
winHeight = document.body.clientHeight
}
// 通过深入 Document 内部对 body 进行检测,获取窗口大小
if (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth) {
winHeight = document.documentElement.clientHeight;
winWidth = document.documentElement.clientWidth;
}
console.log(winWidth)
console.log(winHeight)
}
高度改变事件
window.onresize = function(){
}
JQ获取DOM高度
// 获取高度
let height = $('.body-center').height()
$('.body-right').height(height)
// 页面滚动
$(document).scroll(function () {
// 获取高度
let height = $('.body-center').height()
$('.body-right').height(height)
})
JS获取DOM宽高
网页可见区域宽: 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.screenTop
网页正文部分左: window.screenLeft
屏幕分辨率的高: window.screen.height
屏幕分辨率的宽: window.screen.width
屏幕可用工作区高度: window.screen.availHeight
屏幕可用工作区宽度: window.screen.availWidth
滚动监听
// 滚动监听
$(document).scroll(function () {
let top = $(document).scrollTop();
for (let i = 0; i < outlineId.length; i++) {
// 是最后一个或后一个之前
if (top > $('#' + outlineId[i]).offset().top - 1 && (i === outlineId.length - 1 || top < $('#' + outlineId[i + 1]).offset().top - 1)) {
$('#outline-' + outlineId[i]).addClass('outline-active')
} else {
$('#outline-' + outlineId[i]).removeClass('outline-active')
}
}
// 当前比例
// 获取窗口高度
let bodyHeight = $(document).height()
// 获取窗口高度
let winHeight = 0
if (window.innerHeight) {
winHeight = window.innerHeight
} else if ((document.body) && (document.body.clientHeight)) {
winHeight = document.body.clientHeight
}
// 获取窗口宽度
let winWidth = 0
if (window.innerWidth) {
winWidth = window.innerWidth
} else if ((document.body) && (document.body.clientWidth)) {
winWidth = document.body.clientWidth
}
let scrollRatio = Math.min(parseInt((top / (bodyHeight - winHeight)) * 100) + 1, 100)
$('#backTop').html('<svg width="13px" height="13px" style="top:1px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512"><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M112 244l144-144l144 144"></path><path fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="48" d="M256 120v292"></path></svg> ' + scrollRatio + '%')
if (top > 50 && winWidth > 1100) {
$('#backTop').css({'display': 'block'})
} else {
$('#backTop').css({'display': 'none'})
}
})