談?wù)剬ffsetleft兼容性的理解
關(guān)于此屬性的基本用法可以參閱offsetleft屬性用法詳解一章節(jié)。
此屬性具有一定的兼容性問題,那就是在IE7瀏覽器中,它的返回值是想對于最近的父輩元素的左側(cè)的距離。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>螞蟻部落</title> <style type="text/css"> * { margin: 0px; padding: 0px; } #main { width: 300px; height: 300px; background: red; position: absolute; left: 100px; top: 100px; } #box { width: 200px; height: 200px; background: blue; margin:50px; overflow:hidden; } #inner { width: 50px; height: 50px; background: green; text-align: center; line-height: 50px; margin: 50px; } </style> <script type="text/javascript"> window.onload=function(){ var inner=document.getElementById("inner"); inner.innerHTML=inner.offsetLeft; } </script> </head> <body> <div id="main"> <div id="box"> <div id="inner"></div> </div> </div> </body> </html>
上面的代碼在其他瀏覽器中返回值是100,但是在IE7瀏覽器中返回值是50。
至于IE6沒有測試,感興趣的大家可以做一下測試。
下面抽點(diǎn)空給大家介紹offsetLeft與style.left的區(qū)別
offsetLeft 獲取的是相對于父對象的左邊距
left 獲取或設(shè)置相對于 具有定位屬性(position定義為relative)的父對象 的左邊距
如果父div的position定義為relative,子div的position定義為absolute,那么子div的style.left的值是相對于父div的值,
這同offsetLeft是相同的,區(qū)別在于:
1. style.left 返回的是字符串,如28px,offsetLeft返回的是數(shù)值28,如果需要對取得的值進(jìn)行計(jì)算,
還用offsetLeft比較方便。
2. style.left是讀寫的,offsetLeft是只讀的,所以要改變div的位置,只能修改style.left。
3. style.left的值需要事先定義,否則取到的值為空。而且必須要定義在html里,我做過試驗(yàn),如果定義在
css里,style.left的值仍然 為空,這就是我剛開始碰到的問題,總是取不到style.left的值。
offsetLeft則仍然能夠取到,無需事先定義div的位置。
- 獲取offsetTop和offsetLeft值的js代碼(兼容)
- Javascript拖拽系列文章2之offsetLeft、offsetTop、offsetWidth、offsetHeight屬性
- 獲取任意Html元素與body之間的偏移距離 offsetTop、offsetLeft (For:IE5+ FF1 )[
- 詳解 javascript中offsetleft屬性的用法
- javascript中style.left和offsetLeft的用法說明
- clientX,pageX,offsetX,x,layerX,screenX,offsetLeft區(qū)別分析
- 淺析offsetLeft,Left,clientLeft之間的區(qū)別
- JavaScript中style.left與offsetLeft的使用及區(qū)別詳解
- window.setInterval()方法的定義和用法及offsetLeft與style.left的區(qū)別
- 簡單談?wù)刼ffsetleft、offsetTop和offsetParent
相關(guān)文章
BootStrap Validator 根據(jù)條件在JS中添加或移除校驗(yàn)操作
這篇文章主要介紹了BootStrap Validator 根據(jù)條件在JS中添加或移除校驗(yàn)的相關(guān)資料,需要的朋友可以參考下2017-10-10鼠標(biāo)劃過實(shí)現(xiàn)延遲加載并隱藏層的js代碼
鼠標(biāo)劃過延遲加載隱藏層的效果,想必大家都有見到過吧,在本文將為大家詳細(xì)介紹下使用js是如何實(shí)現(xiàn)的,感興趣的朋友可以參考下2013-10-10微信小程序如何實(shí)現(xiàn)數(shù)據(jù)共享與方法共享詳解
這篇文章主要給大家介紹了關(guān)于微信小程序如何實(shí)現(xiàn)數(shù)據(jù)共享與方法共享的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2022-01-01