Für mich ist klein schön, also benutze ich diese Technik:
In der CSS-Datei:
/* Smartphones ----------- */
@media only screen and (max-width: 760px) {
#some-element { display: none; }
}
In der jQuery / JavaScript-Datei:
$( 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
}
});
Mein Ziel war es, meine Website "mobilfreundlich" zu gestalten. Daher verwende ich CSS-Medienabfragen, um Elemente abhängig von der Bildschirmgröße anzuzeigen / auszublenden.
In meiner mobilen Version möchte ich beispielsweise die Facebook Like Box nicht aktivieren, da sie all diese Profilbilder und Inhalte lädt. Und das ist nicht gut für mobile Besucher. Neben dem Ausblenden des Containerelements mache ich dies auch im jQuery-Codeblock (oben):
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'));
}
Sie können es in Aktion unter http://lisboaautentica.com sehen
Ich arbeite immer noch an der mobilen Version, daher sieht sie zum Zeitpunkt des Schreibens immer noch nicht so aus, wie sie sollte.
Update von dekin88
Es ist eine JavaScript-API zum Erkennen von Medien integriert. Anstatt die obige Lösung zu verwenden, verwenden Sie einfach Folgendes:
$(function() {
let isMobile = window.matchMedia("only screen and (max-width: 760px)").matches;
if (isMobile) {
//Conditional script here
}
});
Browser-Unterstützung: http://caniuse.com/#feat=matchmedia
Der Vorteil dieser Methode besteht darin, dass sie nicht nur einfacher und kürzer ist, sondern dass Sie bei Bedarf auch verschiedene Geräte wie Smartphones und Tablets bedingt separat anvisieren können, ohne dem DOM Dummy-Elemente hinzufügen zu müssen.