Rumah >hujung hadapan web >tutorial js >Pertanyaan JavaScript dan Media: Membina Aplikasi Web Responsif dan Dinamik
Pertanyaan media ialah ciri CSS berkuasa yang digunakan untuk menggunakan gaya berdasarkan ciri peranti pengguna, seperti lebar skrin, ketinggian atau peleraian. JavaScript meningkatkan utiliti pertanyaan media dengan mendayakan respons dinamik kepada perubahan dalam keadaan ini, memberikan kawalan yang lebih besar terhadap cara aplikasi bertindak merentas peranti yang berbeza.
Pertanyaan media membenarkan pembangun mentakrifkan peraturan CSS yang digunakan secara bersyarat, berdasarkan sifat peranti atau port pandangan pengguna.
Sintaks Asas dalam CSS:
@media (max-width: 768px) { body { background-color: lightblue; } }
Dengan JavaScript, anda boleh berinteraksi secara dinamik dengan pertanyaan media ini menggunakan kaedah Window.matchMedia().
Kaedah Window.matchMedia() membolehkan anda menguji pertanyaan media secara pengaturcaraan dan bertindak balas kepada perubahan dalam masa nyata.
Sintaks:
const mediaQuery = window.matchMedia("(max-width: 768px)");
if (mediaQuery.matches) { console.log("Viewport is 768px or smaller."); } else { console.log("Viewport is larger than 768px."); }
Anda boleh menggunakan kaedah addEventListener untuk mendengar perubahan dalam keadaan pertanyaan media.
Contoh:
const mediaQuery = window.matchMedia("(max-width: 768px)"); function handleMediaQueryChange(e) { if (e.matches) { console.log("Now in mobile view."); } else { console.log("Now in desktop view."); } } // Attach listener mediaQuery.addEventListener("change", handleMediaQueryChange);
Pendekatan ini bertindak balas secara dinamik kepada perubahan viewport tanpa memerlukan muat semula halaman.
Tukar reka letak dipacu JavaScript berdasarkan saiz skrin.
const mediaQuery = window.matchMedia("(max-width: 768px)"); function adjustLayout() { if (mediaQuery.matches) { document.body.style.backgroundColor = "lightblue"; } else { document.body.style.backgroundColor = "white"; } } // Initial check and listener adjustLayout(); mediaQuery.addEventListener("change", adjustLayout);
Muat atau jalankan skrip hanya apabila syarat tertentu dipenuhi.
const mediaQuery = window.matchMedia("(max-width: 768px)"); if (mediaQuery.matches) { // Load mobile-specific script import("./mobile.js").then(module => { module.init(); }); }
Lumpuhkan animasi pada peranti yang lebih kecil untuk meningkatkan prestasi.
@media (max-width: 768px) { body { background-color: lightblue; } }
Kebanyakan pelayar moden menyokong sepenuhnya Window.matchMedia() API. Walau bagaimanapun, penyemak imbas lama mungkin memerlukan polyfill untuk kaedah addEventListener pada MediaQueryList.
Berikut ialah contoh praktikal menggabungkan pertanyaan media dan JavaScript untuk mengurus menu responsif.
const mediaQuery = window.matchMedia("(max-width: 768px)");
Dengan menggabungkan JavaScript dan pertanyaan media, anda boleh mencapai reka bentuk yang sangat dinamik dan responsif. Pendekatan ini membolehkan penyesuaian masa nyata kepada pilihan pengguna dan ciri peranti, meningkatkan prestasi dan pengalaman pengguna. Menguasai teknik ini adalah penting untuk membina aplikasi web moden yang mesra peranti.
Hai, saya Abhay Singh Kathayat!
**Saya seorang pembangun tindanan penuh dengan kepakaran dalam kedua-dua teknologi hadapan dan belakang. Saya bekerja dengan pelbagai bahasa pengaturcaraan dan rangka kerja untuk membina aplikasi yang cekap, berskala dan mesra pengguna.
Jangan ragu untuk menghubungi saya melalui e-mel perniagaan saya: **kaashshorts28@gmail.com.
Atas ialah kandungan terperinci Pertanyaan JavaScript dan Media: Membina Aplikasi Web Responsif dan Dinamik. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!