首頁  >  問答  >  主體

取得div元素的邊界框:jQuery實作方法

<p>我想透過jQuery/JavaScript計算div元素的邊界框。 </p> <p>我嘗試了以下程式碼:</p> <pre class="brush:php;toolbar:false;">//盒子的左邊 document.getElementById("myElement").offsetLeft; //盒子的頂部 document.getElementById("myElement").offsetTop; //盒子的右邊 document.getElementById("myElement").offsetLeft document.getElementById("myElement").offsetWidth; //盒子的底部 document.getElementById("myElement").offsetTop document.getElementById("myElement").offsetHeight;</pre> <p>它傳回一些值。是否這是透過jQuery/JavaScript取得div元素邊界框的正確方式。 </p> <p>我需要類似SVG元素中的<code>getBBox()</code>方法。它將傳回元素的<code>x</code>、<code>y</code>、<code>width</code>和<code>height</code>。同樣,我如何取得div元素的邊界框? </p>
P粉207483087P粉207483087425 天前482

全部回覆(2)我來回復

  • P粉360266095

    P粉3602660952023-08-23 10:35:44

    由於這是專門為jQuery標記的 -

    $("#myElement")[0].getBoundingClientRect();

    $("#myElement").get(0).getBoundingClientRect();

    (這兩者在功能上是相同的,在一些舊瀏覽器中,.get() 稍微快一些)

    請注意,如果您嘗試透過jQuery呼叫來取得值,它將不會考慮任何css變換值,這可能會導致意外的結果...

    注意2:在jQuery 3.0中,它已經改為使用適當的getBoundingClientRect()呼叫來進行自身的尺寸呼叫(請參閱jQuery Core 3.0升級指南) -這意味著其他jQuery答案最終將始終正確- 但僅在使用新的jQuery版本時才正確- 這就是為什麼它被稱為破壞性變更的原因...

    回覆
    0
  • P粉649990273

    P粉6499902732023-08-23 00:55:18

    你可以透過呼叫getBoundingClientRect方法來取得任何元素的邊界框。

    var rect = document.getElementById("myElement").getBoundingClientRect();

    這將傳回一個具有left、top、width和height欄位的物件。

    回覆
    0
  • 取消回覆