Bagaimana Anda menemukan lebar saat ini <div>
dalam cara yang kompatibel lintas-browser tanpa menggunakan perpustakaan seperti jQuery?
javascript
html
Joda Maki
sumber
sumber
Jawaban:
sumber
cientWidth
, meskipun aku tidak tahu bedanya.offsetWidth
termasuk lebar perbatasan,clientWidth
tidak.display: none
atau bukan bagian dari dokumen, itu akan selalu memiliki tinggi nol offset.Anda dapat menggunakan
clientWidth
atauoffsetWidth
referensi jaringan pengembang MozillaItu akan seperti:
atau dengan lebar batas:
sumber
Semua Jawaban benar, tetapi saya masih ingin memberikan beberapa alternatif lain yang mungkin berhasil.
Jika Anda mencari lebar yang ditetapkan (mengabaikan bantalan, margin, dan sebagainya) yang bisa Anda gunakan.
getComputedStyle memungkinkan Anda mengakses semua gaya elemen itu. Misalnya: padding, paddingLeft, margin, border-top-left-radius dan sebagainya.
sumber
Anda juga dapat mencari DOM menggunakan ClassName. Sebagai contoh:
Ini akan mengembalikan array. Jika ada satu properti tertentu yang Anda minati. Misalnya:
divWidth
sekarang akan sama dengan lebar elemen pertama di array div Anda.sumber
Sebenarnya, Anda tidak harus menggunakan
document.getElementById("mydiv")
.Anda cukup menggunakan id div, seperti:
var w = mydiv.clientWidth;
atau
var w = mydiv.offsetWidth;
dll.
sumber
Opsi lain adalah menggunakan fungsi getBoundingClientRect. Harap dicatat bahwa getBoundingClientRect akan mengembalikan kotak kosong jika tampilan elemen 'tidak ada'.
sumber
panggil metode di bawah ini di div atau tag tubuh onclick = "show (event);" acara fungsi (acara) {
sumber
Cara yang benar untuk mendapatkan gaya komputasi adalah menunggu sampai halaman ditampilkan. Itu bisa dilakukan dengan cara berikut. Perhatikan batas waktu untuk mendapatkan
auto
nilai.Jika Anda menggunakan hanya
Anda bisa mendapatkan
auto
nilai untuk lebar dan tinggi karena browser tidak membuat sampai beban penuh dilakukan.sumber