做为JavaScript的一个虔诚的教徒,在空余时间我又去回顾了一遍(不知道是第几遍了)圣经(JavaScript 高级程序设计),过程挖出了一个知识点---BOM 窗口位置和大小,回顾了几年的开发过程,其实并无用到太多,因此渐渐把它遗忘到角落,可是想到虔诚的教徒不能厚此薄彼,决定写这篇文章来加深下对 BOM 窗口的印象。浏览器
谈到窗口的位置,那就会出现万恶的浏览器兼容问题,如下列举一些主流浏览器获取窗口位置的属性。
bash
到此可能我会很自信的给出获取浏览器位置的方法,以下
框架
const leftPosition = typeOf window.screenLeft === 'number' ? window.screenLeft : window.screenX
const topPosition = typeOf window.screenTop === 'number' ? window.screenTop : window.screenY
复制代码
可是
工具
相同的,浏览器窗口大小也提供了innerWidth, innerHeight, outerWidth, outerHeigt四个属性。
ui
let pageWidth = window.innerWidth,
pageHeight = window.innerHeight
if (typeOf innerWidth != 'number') {
if (document.compatMode == 'CSS1Compat') {//严格模式
pageWidth = document.documentElement.clientWidth
pageHeight = document.documentElement.clientHeight
} else {
pageWidth = document.body.clientWidth
pageHeight = document.body.clientHeight
}
}
复制代码
总的来讲,以上并非什么难的知识点,在目前一个各大浏览器并存的状况下,如何兼容才是问题所在。本人做为一个勤勤恳恳的切图仔,只要不遇到IE8及如下浏览器,必当对业务方感恩戴德。spa