この属性は、現在の要素と親要素の左端の間の距離を返すことができます。もちろん、この親要素も特殊です。
(1)。親要素内に位置決めされた要素がある場合、現在の要素に最も近い位置決めされた要素の端までの距離が返されます。
(2). 親要素に位置決め要素がない場合は、ボディの左端からの相対距離が返されます。
文法構造:
obj.offsetleft
特記事項: この属性は読み取り専用であり、値を割り当てることはできません。
コード例:
<!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>
上記のコードは、メイン要素が最初に配置された親要素であるため、内側の要素とメイン要素の左側との間の距離を返すことができます。
<!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; margin:100px; } #box{ width:200px; height:200px; background:blue; 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>
上記のコードは、body 要素の左側から内部要素のサイズを返します。
この属性には特定の互換性の問題があります。詳細については、オフセット左の互換性の概要 の章を参照してください。
ps: js における offsetLeft 属性の具体的な役割は何ですか?
オブジェクトとドキュメントの間の左の距離 (ブラウザの左端) を決定できます。たとえば、div を記述して div を取得した場合、alert (div.offsetLeft) を使用して、ブラウザの左側からの現在の距離を確認できます。もちろん、Offset は Left だけでなく、offsetTop、offsetWidth、offsetHeight など、JS の非常に便利なプロパティにも使用できます。