Saya memiliki elemen dan membutuhkan lebarnya tanpa scrollbar vertikal (!).
Firebug memberi tahu saya lebar tubuh adalah 1280px.
Salah satu dari ini berfungsi dengan baik di Firefox:
console.log($('.element').outerWidth() );
console.log($('.element').outerWidth(true) );
$detour = $('.child-of-element').offsetParent();
console.log( $detour.innerWidth() );
Mereka semua mengembalikan 1263px , yang merupakan nilai yang saya cari.
Namun semua browser lain memberi saya 1280px .
Apakah ada cara lintas browser untuk mendapatkan lebar layar penuh tanpa scrollbar vertikal (!)?
jquery
cross-browser
width
sering
sumber
sumber
width: 100%;
Jawaban:
.prop("clientWidth")
dan.prop("scrollWidth")
dalam JavaScript :
PS: Perhatikan bahwa untuk menggunakan dengan
scrollWidth
andal elemen Anda tidak boleh meluap secara horizontaljsBin demo
Anda juga bisa menggunakan
.innerWidth()
tapi ini hanya akan bekerja padabody
elemensumber
body
meluap atau tidak. jika meluap daripada membatasinya.Anda dapat menggunakan vanilla javascript hanya dengan menulis:
Anda juga bisa menggunakan ini untuk mendapatkan lebar dokumen sebagai berikut:
Sumber: MDN
Anda juga bisa mendapatkan lebar jendela penuh, termasuk scrollbar, sebagai berikut:
Namun ini tidak didukung oleh semua browser, jadi sebagai gantinya, Anda mungkin ingin menggunakan
docWidth
seperti di atas, dan menambahkan lebar scrollbar .Sumber: MDN
sumber
document.documentElement.clientWidth
sangat membantu saya, karena berfungsi untuk ketinggian juga (innerHeight
bisa lebih kecil jika badan tidak memenuhi halaman, dll.) dan mendapatkan nilainya tanpa scrollbar.Berikut beberapa contoh yang dianggap
$element
sebagaijQuery
elemen:sumber
Coba ini :
Anda bisa mendapatkan lebar layar dengan dan tanpa scroll bar dengan menggunakan kode ini. Di sini, saya telah mengubah nilai overflow dari
body
dan mendapatkan lebarnya dengan dan tanpa scrollbar.sumber
Tempat teraman untuk mendapatkan lebar dan tinggi yang benar tanpa scrollbar adalah dari elemen HTML. Coba ini:
Dukungan browser cukup baik, dengan IE 9 dan lebih tinggi mendukung ini. Untuk IE LAMA, gunakan salah satu dari banyak fallback yang disebutkan di sini.
sumber
Saya mengalami masalah serupa dan melakukan
width:100%;
pemecahannya untuk saya. Saya datang ke solusi ini setelah mencoba jawaban dalam pertanyaan ini dan menyadari bahwa sifat an<iframe>
akan membuat alat pengukuran javascript ini tidak akurat tanpa menggunakan beberapa fungsi yang kompleks. Melakukan 100% adalah cara sederhana untuk menjaganya dalam iframe. Saya tidak tahu tentang masalah Anda karena saya tidak yakin elemen HTML apa yang Anda manipulasi.sumber
Tak satu pun dari solusi ini berhasil untuk saya, namun saya dapat memperbaikinya dengan mengambil lebar dan mengurangi lebar bilah gulir . Saya tidak yakin seberapa kompatibel lintas-browser ini.
sumber
Inilah yang saya gunakan
sumber