#javascript #jquery #frontend
Адаптирую сайт магазина для мобильных устройств. При просмотре с десктопа подпункты выпадают (hover, absolute), а для мобильных клиентов решил сделать разъезжающиеся пункты и подпункты (пример на JsFiddle). Вопрос следующий: как подключать jQuery-скрипт только при определенном разрешении? Как поставить условие бы при большом размере области просмотра срабатывал обычный css, а на мобильных появлялась jQuery-анимация? Вот скрипт (больше по ссылке): var $menu_with_children = $('.has_children > a'); $menu_with_children.on('click', function(e){ e.preventDefault(); var $this = $(this); if (!$this.parent().find('> .sub-menu').hasClass('visible')) { $this.parent().find('> .sub-menu').addClass('visible').slideDown('slow'); } else{ $this.parent().find('> .sub-menu').removeClass('visible').slideUp('slow'); } });
Ответы
Ответ 1
Если необходимо, что бы условие срабатывало не только при инициализации скрипта, а и при изменении размера экрана, то нужно использовать обработчик. И проверять, как написал @installero, значение ширины экрана $(window).width(): $(window).on('resize', function () { if ($(window).width() > 1280) { // код } else { // код } })Ответ 2
Есть как минимум две ширины «сайта» — ширина окна браузера и ширина документа (разница есть, например, если у пользователя появился скроллинг). В jQuery $(window).width() и $(window).height() возвращают соответственно ширину и высоту области просмотра браузера. Пользоваться ими можно, например, так if ($(window).width() > 1280) { // Тут код для больших разрешений, // к примеру, с шириной окна с сайтом больше 1280 писелей } else { // Тут код для маленьких экранов }Ответ 3
if(($(window).width() > 1024)&&($(window).height() > 768)){ //что-то там... } else { //чего-то там... }
Комментариев нет:
Отправить комментарий