Dapatkan kotak sempadan elemen div: kaedah pelaksanaan jQuery
P粉207483087
2023-08-22 11:18:36
<p>Saya mahu mengira kotak sempadan elemen div melalui jQuery/JavaScript. </p>
<p>Saya mencuba kod berikut: </p>
<pre class="brush:php;toolbar:false;">//Sebelah kiri kotak
document.getElementById("myElement").offsetLeft;
//Atas kotak
document.getElementById("myElement").offsetTop;
//sebelah kanan kotak
document.getElementById("myElement").offsetLeft + document.getElementById("myElement").offsetWidth;
//bawah kotak
document.getElementById("myElement").offsetTop + document.getElementById("myElement").offsetHeight;</pre>
<p>Ia mengembalikan beberapa nilai. Adakah ini cara yang betul untuk mendapatkan kotak sempadan elemen div melalui jQuery/JavaScript. </p>
<p>Saya memerlukan sesuatu yang serupa dengan kaedah <code>getBBox()</code> Ia akan mengembalikan <kod>x</kod>, <kod>y</kod>, <kod>lebar</kod> dan <kod>tinggi</kod> Begitu juga, bagaimana saya boleh mendapatkan kotak sempadan unsur div? </p>
Memandangkan ini ditandakan khusus untuk jQuery -
atau
(Kedua-duanya fungsinya sama,
.get()
lebih laju sedikit dalam sesetengah pelayar lama)Sila ambil perhatian bahawa jika anda cuba mendapatkan nilai melalui panggilan jQuery, ia tidak akan mengambil kira sebarang nilai transformasi css, yang mungkin membawa kepada hasil yang tidak dijangka...
Nota 2: Dalam jQuery 3.0 ia telah ditukar untuk menggunakan panggilan
getBoundingClientRect()
yang sesuai untuk panggilan saiznya sendiri (lihat Panduan Naik Taraf jQuery Core 3.0) - bermakna jawapan jQuery yang lain akhirnya akan sentiasa betul - tetapi hanya jika betul apabila menggunakan versi jQuery baharu - itulah sebabnya ia dipanggil perubahan pecah...Anda boleh mendapatkan kotak sempadan mana-mana elemen dengan memanggil kaedah getBoundingClientRect.
Ini akan mengembalikan objek dengan medan kiri, atas, lebar dan ketinggian.