关于JS获取各种尺寸的注意事项
2014-02-26 16:06
120 查看
最近复习JS,在写一些JS动态设置布局的时候,不是很得心应手,原因是对各个浏览器对尺寸的控制属性不了解。所以今天在这里做一番调查:
首先贴出我的例子:
Chrome:
safari:
firefox:
IE6:
其中chrome和firefox是在分辨率为1366*768下测试的,而safari和IE6由于是在虚拟机中,所以用的是1024*768的分辨率。
在上面的图片中,我们是可以看出一些问题的:
1.哪些属性是所有浏览器都支持的——当然是那些在所有浏览器中都没有显示undefined的啦
2.哪些属性是我们真正用得上的。
3.哪些属性是我们需要注意去兼容的。
在这里我首先说第三点吧,因为最近做一个小demo 的时候发现,chrome虽然支持document.documentElement.scrollTop的属性,但是真正使用的时候它的值居然为0。的确有点匪夷所思,这在一些标准浏览器中是不存在的。而在chrome下我们只能通过document.body.scrollTop去获取页面卷去的高度。所以在这里我们需要做一些兼容,当我们要获取页面卷去的高度的时候,可以这样定义:
var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
在这里,window.pageYOffset的属性是safari支持的属性,借鉴的是别人的写法,具体是哪位兄台的现在无从考证了
再到第二点——哪些属性我们可以放心使用:
在这里我就不废话了,直接写答案,证据将看图吧:
1.document.body.clientHeight/clientWidth
2.document.body.offsetHeight/offsetWidth
3.screen.width/height
4.screen.availHeight/Width
5.document.documentElement.scrollHeight/Width
6.document.documentElement.clientHeight/Width
暂时我发现的就这些,其余属性都多多少少存在兼容性问题,甚至在部分浏览器称得上是怪异。如果我这儿漏了什么,欢迎大家拍砖!
首先贴出我的例子:
Chrome:
safari:
firefox:
IE6:
其中chrome和firefox是在分辨率为1366*768下测试的,而safari和IE6由于是在虚拟机中,所以用的是1024*768的分辨率。
在上面的图片中,我们是可以看出一些问题的:
1.哪些属性是所有浏览器都支持的——当然是那些在所有浏览器中都没有显示undefined的啦
2.哪些属性是我们真正用得上的。
3.哪些属性是我们需要注意去兼容的。
在这里我首先说第三点吧,因为最近做一个小demo 的时候发现,chrome虽然支持document.documentElement.scrollTop的属性,但是真正使用的时候它的值居然为0。的确有点匪夷所思,这在一些标准浏览器中是不存在的。而在chrome下我们只能通过document.body.scrollTop去获取页面卷去的高度。所以在这里我们需要做一些兼容,当我们要获取页面卷去的高度的时候,可以这样定义:
var scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
在这里,window.pageYOffset的属性是safari支持的属性,借鉴的是别人的写法,具体是哪位兄台的现在无从考证了
再到第二点——哪些属性我们可以放心使用:
在这里我就不废话了,直接写答案,证据将看图吧:
1.document.body.clientHeight/clientWidth
2.document.body.offsetHeight/offsetWidth
3.screen.width/height
4.screen.availHeight/Width
5.document.documentElement.scrollHeight/Width
6.document.documentElement.clientHeight/Width
暂时我发现的就这些,其余属性都多多少少存在兼容性问题,甚至在部分浏览器称得上是怪异。如果我这儿漏了什么,欢迎大家拍砖!
相关文章推荐
- 在关于原生js获取getAttribute如果是src的一点注意事项
- 原生JS 获取浏览器、窗口、元素等尺寸的方法及注意事项
- 原生JS获取各种高度宽度、浏览器窗口滚动条的位置、元素的几何尺寸名
- 关于IE浏览器加载外部js注意事项
- JS获取各种高度宽度、浏览器窗口滚动条的位置、元素的几何尺寸
- js 获取计算后的样式写法及注意事项
- 关于cocoapods的安装使用注意的事项(各种出错的总结)
- JS获取各种高度宽度、浏览器窗口滚动条的位置、元素的几何尺寸
- 关于获取web应用的文件路径的注意事项
- 关于微信网页调用js-sdk相关接口注意事项目(一级域名与二级域名互相干扰!!!)
- 关于Cocos Creator用js脚本代码播放骨骼动画的步骤和注意事项
- 关于javascript js获取各种浏览器可见窗口大小
- JS获取各种高度宽度、浏览器窗口滚动条的位置、元素的几何尺寸
- Js关于获取各种浏览器可见窗口大小的一点点研究
- JS 获取各种尺寸
- 关于JS脚本中拼接Html代码注意事项
- HTML DOCTYPE属性对JS获取窗口宽度和高度注意事项
- 关于数据库中varchar/nvarchar类型数据的获取注意事项
- js中获取各种尺寸
- js传数组到action 后台 后台获取数组时注意事项