Apakah ada cara yang berfungsi untuk semua browser?
196
jawaban asli
Iya.
window.screen.availHeight
window.screen.availWidth
perbarui 2017-11-10
Dari Tsunami di komentar:
Untuk mendapatkan resolusi asli yaitu perangkat seluler, Anda harus mengalikannya dengan rasio piksel perangkat:
window.screen.width * window.devicePixelRatio
danwindow.screen.height * window.devicePixelRatio
. Ini juga akan berfungsi pada desktop, yang akan memiliki rasio 1.
Dan dari Ben dalam jawaban lain:
Dalam vanilla JavaScript, ini akan memberi Anda lebar / tinggi yang TERSEDIA:
window.screen.availHeight window.screen.availWidth
Untuk lebar / tinggi absolut, gunakan:
window.screen.height window.screen.width
$(window).width()
sebagai gantinya, lihat jawabanwindow.devicePixelRatio
. Lihat komentar saya pada jawaban Alessandros.sumber
window.screen
. Seharusnya tambahkan saja ke jawaban yang ada.screen.availHeight
hanya memberikan ketinggian yang tersedia di jendela browser sementarascreen.height
memberikan ketinggian layar yang tepat.window.screen.width * window.devicePixelRatio
danwindow.screen.height * window.devicePixelRatio
. Ini juga akan berfungsi pada desktop, yang akan memiliki rasio 1.Dalam vanilla JavaScript, ini akan memberi Anda lebar / tinggi yang TERSEDIA :
Untuk lebar / tinggi absolut, gunakan:
Kedua hal di atas dapat ditulis tanpa awalan jendela.
Suka jQuery? Ini berfungsi di semua browser, tetapi setiap browser memberikan nilai yang berbeda.
sumber
Apakah yang Anda maksud resolusi layar (misalnya 72 titik per inci) atau dimensi piksel (jendela browser saat ini 1000 x 800 piksel)?
Resolusi layar memungkinkan Anda untuk mengetahui seberapa tebal garis 10 piksel dalam inci. Dimensi piksel memberi tahu Anda berapa persen dari tinggi layar yang tersedia akan diambil oleh garis horizontal lebar 10 piksel.
Tidak ada cara untuk mengetahui resolusi tampilan hanya dari Javascript karena komputer itu sendiri biasanya tidak tahu dimensi layar yang sebenarnya, hanya jumlah piksel. 72 dpi adalah tebakan biasa ....
Perhatikan bahwa ada banyak kebingungan tentang resolusi layar, seringkali orang menggunakan istilah ini daripada resolusi piksel, tetapi keduanya sangat berbeda. Lihat Wikipedia
Tentu saja, Anda juga dapat mengukur resolusi dalam titik per cm. Ada juga subjek yang tidak jelas dari titik-titik non-kuadrat. Tapi saya ngelantur.
sumber
Menggunakan jQuery dapat Anda lakukan:
sumber
Anda juga bisa mendapatkan WINDOW lebar dan tinggi, menghindari bilah alat browser dan ... (bukan hanya ukuran layar).
Untuk melakukan ini, gunakan:
window.innerWidth
danwindow.innerHeight
properti. Lihat 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
Mencoba mendapatkan ini di perangkat seluler memerlukan beberapa langkah lagi.
screen.availWidth
tetap sama terlepas dari orientasi perangkat.Inilah solusi saya untuk seluler:
sumber
window.orientation
mengembalikan undefined ... (Firefox 49)screen.orientation.angle
mengembalikan sudut, tetapi sudah di 0 untuk mode lansekap.Lihat Dapatkan Resolusi Layar Monitor dengan Javascript dan
window.screen
objeksumber
sumber
hanya untuk referensi di masa mendatang:
sumber
Jika Anda ingin mendeteksi resolusi layar, Anda mungkin ingin checkout res plugin . Ini memungkinkan Anda untuk melakukan hal berikut:
Berikut adalah beberapa takeaways resolusi hebat dari Ryan Van Etten, penulis plugin:
Berikut kode sumber untuk res, mulai hari ini:
sumber