Bagi saya kecil itu indah jadi saya menggunakan teknik ini:
Dalam file CSS:
/* Smartphones ----------- */
@media only screen and (max-width: 760px) {
#some-element { display: none; }
}
Dalam file jQuery / JavaScript:
$( document ).ready(function() {
var is_mobile = false;
if( $('#some-element').css('display')=='none') {
is_mobile = true;
}
// now I can use is_mobile to run javascript conditionally
if (is_mobile == true) {
//Conditional script here
}
});
Tujuan saya adalah membuat situs saya "mobile-friendly". Jadi saya menggunakan CSS Media Query yang menampilkan / menyembunyikan elemen tergantung pada ukuran layar.
Misalnya, dalam versi seluler saya, saya tidak ingin mengaktifkan Kotak Suka Facebook, karena memuat semua gambar dan barang profil itu. Dan itu tidak baik untuk pengunjung seluler. Jadi, selain menyembunyikan elemen kontainer, saya juga melakukan ini di dalam blok kode jQuery (di atas):
if(!is_mobile) {
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/pt_PT/all.js#xfbml=1&appId=210731252294735";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
}
Anda dapat melihatnya beraksi di http://lisboaautentica.com
Saya masih mengerjakan versi mobile, jadi masih belum terlihat sebagaimana mestinya, pada penulisan ini.
Perbarui oleh dekin88
Ada built-in JavaScript API untuk mendeteksi media. Daripada menggunakan solusi di atas, cukup gunakan yang berikut ini:
$(function() {
let isMobile = window.matchMedia("only screen and (max-width: 760px)").matches;
if (isMobile) {
//Conditional script here
}
});
Dukungan Browser: http://caniuse.com/#feat=matchmedia
Keuntungan dari metode ini adalah tidak hanya lebih sederhana dan lebih pendek, tetapi Anda juga dapat menargetkan berbagai perangkat seperti smartphone dan tablet secara terpisah jika perlu tanpa harus menambahkan elemen dummy ke dalam DOM.