mata teras
window.matchMedia
yang boleh digunakan untuk menentukan sama ada pertanyaan media tertentu sepadan dengan peranti semasa dan boleh menambah pendengar acara sebagai tindak balas kepada perubahan. MediaQueryList
Artikel ini ditulis pada tahun 2011 dan dikemas kini pada tahun 2018 . Apabila reka bentuk responsif mula diperkenalkan, ia merupakan salah satu konsep susun atur web yang paling menarik sejak CSS mengambil grid perwakilan. Teknologi yang mendasari menggunakan pertanyaan media untuk menentukan jenis, lebar, ketinggian, orientasi, resolusi, nisbah aspek, dan kedalaman warna peranti tontonan untuk menyediakan helaian gaya yang berbeza. Jika anda berfikir reka bentuk responsif terhad kepada susun atur CSS, anda akan dengan senang hati mendengar bahawa pertanyaan media juga boleh digunakan dalam JavaScript, yang akan dijelaskan dalam artikel ini.
pertanyaan media dalam CSS
Dalam contoh berikut, disediakan untuk semua peranti. Walau bagaimanapun, jika lebar mendatar skrin adalah 500 piksel atau lebih, ia juga akan dihantar cssbasic.css
: csswide.css
<link rel="stylesheet" media="all" href="cssbasic.css" /> <link rel="stylesheet" media="(min-width: 500px)" href="csswide.css" />
window.innerWidth
. (Versi mod pelik sebelum IE 10 memerlukan window.innerHeight
dan document.body.clientWidth
.) document.body.clientHeight
window.onresize
Semua penyemak imbas utama menyokong document.documentElement.clientWidth
document.documentElement.clientHeight
bagaimana menulis pertanyaan media menggunakan kod javascript
bernasib baik, adalah mungkin untuk bertindak balas terhadap perubahan dalam status pertanyaan media CSS3 dalam JavaScript. API utama ialah
tidak akan dipanggil jika pengguna tidak menukar saiz penyemak imbas. Pada masa penulisan, soalan yang sering ditanya mengenai pertanyaan media JavaScript (FAQ)
(bahagian Soalan Lazim harus dipelihara dan diperbaiki di sini untuk menjadikannya lebih ringkas dan lebih jelas dan menggunakan format yang lebih jelas.) Cadangan Penambahbaikan:
Atas ialah kandungan terperinci Cara Menggunakan Pertanyaan Media di JavaScript dengan MatchMedia. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!window.matchMedia
. Ini akan lulus rentetan yang sama seperti rentetan pertanyaan media yang digunakan dalam pertanyaan media CSS: <link rel="stylesheet" media="all" href="cssbasic.css" />
<link rel="stylesheet" media="(min-width: 500px)" href="csswide.css" />
matches
pulangan atribut true
atau false
berdasarkan hasil pertanyaan. Contohnya: const mq = window.matchMedia("(min-width: 500px)");
if (mq.matches) {
// 窗口宽度至少为 500 像素
} else {
// 窗口宽度小于 500 像素
}
WidthChange()
mempunyai sokongan penyemak imbas yang sangat baik dalam setiap cara, jadi tidak ada sebab untuk tidak menggunakannya dalam persekitaran pengeluaran. Semak teks demonstrasi berikut untuk berubah secara dinamik dari "lebih daripada 500 piksel" hingga "kurang daripada 500 piksel" bergantung pada saiz tetingkap penyemak imbas anda. Atau, muat turun kod sampel: matchMedia
pautan demo codepen
Gunakan lebih banyak bahasa ringkas: