Benim için küçük güzel, bu yüzden bu tekniği kullanıyorum:
CSS dosyasında:
/* Smartphones ----------- */
@media only screen and (max-width: 760px) {
#some-element { display: none; }
}
JQuery / JavaScript dosyasında:
$( 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
}
});
Amacım sitemin "mobil uyumlu" olmasını sağlamaktı. Bu yüzden ekran boyutuna bağlı olarak öğeleri göstermek / gizlemek için CSS Medya Sorguları kullanıyorum.
Örneğin, mobil sürümümde Facebook Beğen Kutusu'nu etkinleştirmek istemiyorum, çünkü tüm bu profil resimlerini ve malzemelerini yüklüyor. Ve bu mobil ziyaretçiler için iyi değil. Yani, konteyner eleman gizleme yanı sıra, ben de bunu jQuery kod bloğu içinde (yukarıda):
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'));
}
Http://lisboaautentica.com adresinde çalışırken görebilirsiniz.
Hala mobil versiyon üzerinde çalışıyorum, bu yüzden yazarken hala olması gerektiği gibi görünmüyor.
Dekin88 tarafından güncelleme
Medya algılamak için yerleşik bir JavaScript API'sı vardır. Yukarıdaki çözümü kullanmak yerine aşağıdakileri kullanmanız yeterlidir:
$(function() {
let isMobile = window.matchMedia("only screen and (max-width: 760px)").matches;
if (isMobile) {
//Conditional script here
}
});
Tarayıcı Destekleri: http://caniuse.com/#feat=matchmedia
Bu yöntemin avantajı, sadece daha basit ve daha kısa değil, aynı zamanda DOM'a herhangi bir kukla öğe eklemek zorunda kalmadan, gerekirse akıllı telefonlar ve tabletler gibi farklı cihazları da ayrı ayrı hedefleyebilmenizdir.