Para mí lo pequeño es hermoso, así que estoy usando esta técnica:
En archivo CSS:
/* Smartphones ----------- */
@media only screen and (max-width: 760px) {
#some-element { display: none; }
}
En el archivo 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
}
});
Mi objetivo era tener mi sitio "apto para dispositivos móviles". Así que uso CSS Media Queries mostrar / ocultar elementos dependiendo del tamaño de la pantalla.
Por ejemplo, en mi versión móvil no quiero activar el Me gusta de Facebook, porque carga todas esas imágenes de perfil y otras cosas. Y eso no es bueno para los visitantes móviles. Entonces, además de ocultar el elemento contenedor, también hago esto dentro del bloque de código jQuery (arriba):
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'));
}
Puedes verlo en acción en http://lisboaautentica.com
Todavía estoy trabajando en la versión móvil, por lo que todavía no se ve como debería, al momento de escribir esto.
Actualización por dekin88
Hay una API de JavaScript incorporada para detectar medios. En lugar de usar la solución anterior, simplemente use lo siguiente:
$(function() {
let isMobile = window.matchMedia("only screen and (max-width: 760px)").matches;
if (isMobile) {
//Conditional script here
}
});
Navegador compatible: http://caniuse.com/#feat=matchmedia
La ventaja de este método es que no solo es más simple y más corto, sino que puede apuntar condicionalmente a diferentes dispositivos como teléfonos inteligentes y tabletas por separado si es necesario sin tener que agregar ningún elemento ficticio en el DOM.