Dla mnie małe jest piękne, dlatego używam tej techniki:
W pliku CSS:
/* Smartphones ----------- */
@media only screen and (max-width: 760px) {
#some-element { display: none; }
}
W pliku 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
}
});
Moim celem było, aby moja witryna była „przyjazna dla urządzeń mobilnych”. Używam więc CSS Media Queries, aby wyświetlać / ukrywać elementy w zależności od rozmiaru ekranu.
Na przykład w mojej wersji mobilnej nie chcę aktywować Facebook Like Box, ponieważ ładuje wszystkie te zdjęcia profilowe i takie tam. I to nie jest dobre dla użytkowników mobilnych. Oprócz ukrywania elementu kontenera robię to również wewnątrz bloku kodu jQuery (powyżej):
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'));
}
Możesz zobaczyć to w akcji na http://lisboaautentica.com
Nadal pracuję nad wersją mobilną, więc pisząc to nadal nie wygląda tak, jak powinna.
Aktualizacja przez dekin88
Wbudowany jest JavaScript API do wykrywania mediów. Zamiast korzystać z powyższego rozwiązania, skorzystaj z następujących opcji:
$(function() {
let isMobile = window.matchMedia("only screen and (max-width: 760px)").matches;
if (isMobile) {
//Conditional script here
}
});
Obsługuje przeglądarkę: http://caniuse.com/#feat=matchmedia
Zaletą tej metody jest to, że jest ona nie tylko prostsza i krótsza, ale w razie potrzeby można warunkowo kierować różne urządzenia, takie jak smartfony i tablety, bez konieczności dodawania żadnych elementów zastępczych do DOM.