Bagaimana saya bisa mendapatkan windowWidth
, windowHeight
, pageWidth
, pageHeight
, screenWidth
, screenHeight
, pageX
, pageY
, screenX
, screenY
yang akan bekerja di semua browser utama?
javascript
jquery
layout
cross-browser
perkutut
sumber
sumber
Jawaban:
Anda bisa mendapatkan ukuran jendela atau dokumen dengan jQuery:
Untuk ukuran layar Anda dapat menggunakan
screen
objek:sumber
46
) daripada string seperti css ('tinggi') ("46px"
).Ini memiliki semua yang perlu Anda ketahui: Dapatkan ukuran viewport / jendela
tetapi singkatnya:
Biola
Tolong berhenti mengedit jawaban ini. Sudah diedit 22 kali sekarang oleh orang yang berbeda untuk mencocokkan preferensi format kode mereka. Juga telah ditunjukkan bahwa ini tidak diperlukan jika Anda hanya ingin menargetkan browser modern - jika demikian Anda hanya perlu yang berikut ini:
sumber
g = document.body
?document.body
.Berikut ini adalah solusi lintas browser dengan JavaScript murni ( Sumber ):
sumber
body element
akan mengembalikan nilaiundefined
karena dom belum dimuat.Cara non-jQuery untuk mendapatkan dimensi layar yang tersedia.
window.screen.width/height
sudah disiapkan, tetapi untuk desain web responsif dan demi kelengkapan saya pikir nilainya untuk menyebutkan atribut-atribut tersebut:http://www.quirksmode.org/dom/w3c_cssom.html#t10 :
sumber
window.screen.availHeight
tampaknya menganggap mode layar penuh sehingga mode layar normal memaksa pengguliran (diuji di Firefox dan Chrome).window.screen.height
sebagai gantinya.Tetapi ketika kita berbicara tentang layar responsif dan jika kita ingin menanganinya menggunakan jQuery karena suatu alasan,
memberikan pengukuran yang benar. Bahkan itu menghilangkan ruang ekstra bilah gulir dan kita tidak perlu khawatir tentang menyesuaikan ruang itu :)
sumber
window.innerWidth
danwindow.innerHeight
gagal memperhitungkan ukuran bilah gulir. Jika bilah gulir ada, metode ini mengembalikan hasil yang salah untuk ukuran jendela di hampir semua browser desktop. Lihat stackoverflow.com/a/31655549/508355Anda juga bisa mendapatkan WINDOW lebar dan tinggi, menghindari bilah alat peramban dan hal-hal lainnya. Ini adalah area yang dapat digunakan nyata di jendela browser .
Untuk melakukan ini, gunakan:
window.innerWidth
danwindow.innerHeight
properti ( lihat doc di w3schools ).Dalam kebanyakan kasus itu akan menjadi cara terbaik, misalnya, untuk menampilkan dialog modal mengambang terpusat sempurna. Ini memungkinkan Anda untuk menghitung posisi di jendela, terlepas dari orientasi resolusi atau ukuran jendela mana yang menggunakan browser.
sumber
sumber
Untuk memeriksa tinggi dan lebar halaman yang dimuat saat ini dari situs web apa pun menggunakan "konsol" atau setelah mengklik "Periksa" .
langkah 1 : Klik tombol kanan mouse dan klik 'Periksa' lalu klik 'konsol'
langkah 2 : Pastikan layar browser Anda tidak dalam mode 'maksimalkan'. Jika layar peramban dalam mode 'maksimalkan', Anda harus terlebih dahulu mengeklik tombol maksimalkan (ada di sudut kanan atau kiri atas) dan batalkan-maksimalkan.
langkah 3 : Sekarang, tulis berikut ini setelah tanda lebih besar dari ('>') yaitu
sumber
Jika Anda membutuhkan solusi anti peluru untuk lebar dan tinggi dokumen (
pageWidth
danpageHeight
dalam gambar), Anda mungkin ingin mempertimbangkan untuk menggunakan plugin milik saya, jQuery.documentSize .Ini hanya memiliki satu tujuan: untuk selalu mengembalikan ukuran dokumen yang benar, bahkan dalam skenario ketika jQuery dan metode lainnya gagal . Terlepas dari namanya, Anda tidak harus menggunakan jQuery - ditulis dalam vanilla Javascript dan bekerja tanpa jQuery juga.
Pemakaian:
untuk global
document
. Untuk dokumen lain, misalnya dalam iframe tertanam yang Anda dapat mengaksesnya, kirimkan dokumen sebagai parameter:Perbarui: sekarang juga untuk dimensi jendela
Sejak versi 1.1.0, jQuery.documentSize juga menangani dimensi jendela.
Itu perlu karena
$( window ).height()
adalah kereta di iOS , untuk titik yang tidak berguna$( window ).width()
dan$( window ).height()
tidak dapat diandalkan di ponsel karena mereka tidak menangani efek pembesaran seluler.jQuery.documentSize menyediakan
$.windowWidth()
dan$.windowHeight()
, yang menyelesaikan masalah ini. Untuk lebih lanjut, silakan lihat dokumentasi .sumber
Saya menulis bookmarklet javascript kecil yang dapat Anda gunakan untuk menampilkan ukurannya. Anda dapat dengan mudah menambahkannya ke browser Anda dan setiap kali Anda mengkliknya Anda akan melihat ukuran di sudut kanan jendela browser Anda.
Di sini Anda menemukan informasi cara menggunakan bookmarklet https://en.wikipedia.org/wiki/Bookmarklet
Bookmarklet
Kode Asli
Kode asli dalam kopi:
Pada dasarnya kod ini menambahkan sebuah div kecil yang diperbarui ketika Anda mengubah ukuran jendela Anda.
sumber
Dalam beberapa kasus yang terkait dengan tata letak responsif
$(document).height()
dapat mengembalikan data yang salah yang hanya menampilkan ketinggian port tampilan. Misalnya ketika beberapa div # wrapper memiliki tinggi: 100%, #wrapper itu dapat diregangkan oleh beberapa blok di dalamnya. Tapi tingginya masih akan seperti tinggi viewport. Dalam situasi seperti itu Anda mungkin menggunakanItu mewakili ukuran sebenarnya dari pembungkus.
sumber
Panduan lengkap terkait dengan ukuran Layar
JavaScript
Untuk tinggi:
Catatan: Ketika jendela dimaksimalkan ini akan sama dengan screen.availHeight
Untuk lebar:
Jquery
Untuk tinggi:
Untuk lebar:
Referensi: https://help.optimizely.com/Build_Campaigns_and_Experiments/Use_screen_measurements_to_design_for_responsive_breakpoints
sumber
Saya mengembangkan perpustakaan untuk mengetahui ukuran viewport yang sebenarnya untuk desktop dan browser ponsel, karena ukuran viewport tidak konsisten di seluruh perangkat dan tidak dapat mengandalkan semua jawaban dari posting itu (menurut semua penelitian yang saya buat tentang ini): https: // github .com / pyrsmk / W
sumber
Terkadang Anda perlu melihat perubahan lebar / tinggi saat mengubah ukuran jendela dan konten dalam.
Untuk itu saya telah menulis skrip kecil yang menambahkan kotak log yang secara dinamis memonitor semua pembaruan ukuran dan hampir dengan segera.
Itu menambahkan HTML yang valid dengan posisi tetap dan indeks z tinggi, tetapi cukup kecil, sehingga Anda dapat :
Diuji pada: Chrome 40, IE11, tetapi sangat mungkin untuk bekerja di browser lain / yang lebih lama juga ... :)
EDIT: Sekarang gaya diterapkan hanya untuk elemen tabel logger - tidak untuk semua tabel - juga ini adalah solusi bebas jQuery :)
sumber
Dengan diperkenalkannya
globalThis
di ES2020 Anda dapat menggunakan properti seperti.Untuk ukuran layar:
Untuk Ukuran Jendela
Untuk Offset:
... dan seterusnya.
sumber
Anda dapat menggunakan objek Layar untuk mendapatkan ini.
Berikut ini adalah contoh dari apa yang akan dikembalikan:
Untuk mendapatkan
screenWidth
variabel Anda , gunakan sajascreen.width
, sama denganscreenHeight
, Anda hanya akan menggunakanscreen.height
.Untuk mendapatkan lebar dan tinggi jendela Anda, itu akan menjadi
screen.availWidth
atauscreen.availHeight
masing - masing.Untuk
pageX
danpageY
variabel, gunakanwindow.screenX or Y
. Perhatikan bahwa ini berasal dari LAYAR SANGAT KIRI / ATAS KIRIM ANDA / TOP-est . Jadi jika Anda memiliki dua layar lebar1920
maka sebuah jendela 500px dari kiri layar kanan akan memiliki nilai X2420
(1920 + 500).screen.width/height
Namun, tampilkan lebar atau tinggi layar CURRENT.Untuk mendapatkan lebar dan tinggi halaman Anda, gunakan jQuery's
$(window).height()
atau$(window).width()
.Sekali lagi menggunakan jQuery, gunakan
$("html").offset().top
dan$("html").offset().left
untuk nilaipageX
-pageY
nilai Anda dan .sumber
ini solusinya!
sumber
Begini cara saya berhasil mendapatkan lebar layar di React JS Project:
Jika lebar sama dengan 1680 maka kembalikan 570 lagi kembalikan 200
Screen.availWidth
sumber