Для меня маленькое - это прекрасно, поэтому я использую эту технику:
В файле CSS:
/* Smartphones ----------- */
@media only screen and (max-width: 760px) {
#some-element { display: none; }
}
В файле 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
}
});
Моя цель заключалась в том, чтобы мой сайт был удобен для мобильных устройств. Поэтому я использую CSS Media Queries, чтобы отображать / скрывать элементы в зависимости от размера экрана.
Например, в моей мобильной версии я не хочу активировать Facebook Like Box, потому что он загружает все эти изображения профиля и прочее. А это плохо для мобильных посетителей. Итак, помимо скрытия элемента контейнера, я также делаю это внутри блока кода jQuery (см. Выше):
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.
Я все еще работаю над мобильной версией, так что на момент написания она все еще не выглядела так, как должна.
Обновление от dekin88
Для обнаружения медиа есть встроенный JavaScript API. Вместо того, чтобы использовать вышеуказанное решение, просто используйте следующее:
$(function() {
let isMobile = window.matchMedia("only screen and (max-width: 760px)").matches;
if (isMobile) {
//Conditional script here
}
});
Поддерживает браузер: http://caniuse.com/#feat=matchmedia
Преимущество этого метода заключается в том, что он не только проще и короче, но и в том, что при необходимости вы можете условно настроить таргетинг на разные устройства, такие как смартфоны и планшеты, по отдельности, без добавления каких-либо фиктивных элементов в DOM.
person
Community
schedule
28.04.2012
https://cdnjs.cloudflare.com/ajax/libs/jquery-browser/0.1.0/jquery.browser.js
, тогда в вашем коде, где вы хотите проверить мобильность, просто используйте$.browser.mobile
, он вернет true, если текущее устройство является мобильным. Для проверки на настольном компьютере используйте$.browser.desktop
- person Laksh Goel   schedule 19.01.2018let isMobile = /mobi/i.test(navigator.userAgent);
- person Andrew   schedule 23.02.2021