Как добавить поддержку сенсорных нажатий для работы меню WordPress

K
На сайте с 10.01.2015
Offline
110
570

В интернете нормального ответа на этот вопрос я так не нашел. Большинство способов не работает. Мне нужно как-то сделать так, чтобы меню в полноц версии сайта нормально открывалось на сенсорных устройствах. На компьютере подменю выдвигается нормально за счет использования псевдо-класса :hover. На сенсоре при нажатии быстро открывает подменю и загружается страница меню основная(на которую на компьютее нужно было навести мышку). Прошу помощи. Желательно с нимимальным добавлением кода в сайт.

S
На сайте с 13.10.2014
Offline
171
#1

можно попытаться сделать это через псевдокласс :active или :focus

и @media

K
На сайте с 10.01.2015
Offline
110
#2

Хотелось бы просто подключить какой-то js легкий к сайту.

S
На сайте с 13.10.2014
Offline
171
#3

Ну так не получится, надо кастомайзить

смотрите как я это решил сейчас.

Дописал js который по клику на блок добавляет ему класс.


$('#udslider').click(function(){
if ( $('#udslider').hasClass('active')){$('#udslider').removeClass('active');} else {$('#udslider').addClass('active');}
})

а дальше в css уже прописал условия для каждого из разрешений.

например до 192 точек, это стандартные десктопы

от 192 это ретины и мобильники.

я не стал заморачиваться и просто прописал привязку к задающему


/* для десктопа */
@media screen and (min-resolution: 60dpi) and (max-resolution: 191dpi) {
html { font-size: 62.5%; }
#udslider:hover{height:30rem;}
#udslider{cursor:pointer;}
}

/* для мобилки */
@media screen and (min-resolution: 192dpi) {
html { font-size: 180%; }
#udslider{background-color:RGBA(150,0,0,0.9)!important; height:2rem;}
#udslider.active{height:30rem;}
}

живой пример тут http://u1.dep2.ru/man/pt.html

K
На сайте с 10.01.2015
Offline
110
#4

Может быть есть способ получше и проще?

S
На сайте с 13.10.2014
Offline
171
#5

Kepus, Оставить как есть, просто клик и ховер в мобильном браузере одно и тоже. Чтоб убрать ховер в мобильном хроме, например, надо кликнуть куда-нить в другом месте страницы

psics
На сайте с 02.04.2009
Offline
130
#6

          <div id="mobile-menu">

<nav>
<?php
$args = array(
'theme_location' => 'mobile',
'menu' => '',
'container' => 'div',
'container_class' => 'mobile-menu',
'container_id' => '',
'menu_class' => '',
'menu_id' => '',
'echo' => true,
'fallback_cb' => 'wp_page_menu',
'before' => '',
'after' => '',
'link_before' => '',
'link_after' => '',
'items_wrap' => '<ul id="%1$s" class="%2$s">%3$s</ul>',
'depth' => 0
);
wp_nav_menu( $args );
?>
</nav>
</div>

два меню выводите, один к примеру для экранов с шириной до 989

а этот код для менее...

K
На сайте с 10.01.2015
Offline
110
#7

К сожалению способ с определёнными условиями для экранов меньше определённой ширины не походит. Даже у iPad разрешение по ширине больше, а следовательно не будет правильно работать. Неужели нет просто какого то JS, который бы сделал все?

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий