Задать вопрос
@mantruegood

Как реализовать на готовом меню клик по выпадающему списку и совместить его с hover при наведении?

Подскажите пожалуйста как можно реализовать вот в это меню которое над баннером вывод меню при клике что бы работал совместно с hover. Просто в мобильной версии не работает при клике меню, вот для этих целей надо реализовать, никак не выходит... Пробовал after focus но не получилось :(
Вот сам сайт: ссылка
  • Вопрос задан
  • 695 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ответы на вопрос 2
@strelok011
Мобильные браузеры не имеют события hover (мышки ж нет). Они его эмулируют, и это не очень качественно.
Нормальное меню пишите на js. Вместо ховера будут события mouseover/out, mouseenter/leave https://learn.javascript.ru/mousemove-mouseover-mo...
Ну и click соответственно.
Как альтернатива - оставляете ховер на десктопе, для мобильного вида ховер стили отключаете через media queries, оставляете обработку только клика.
Примеров реализации много найти можно.
Ответ написан
@mantruegood Автор вопроса
Попробовал два скрипта, но не работают.

<script>
    let menuElem = document.getElementByClassName('section--main_menu')[0];
    let titleElem = menuElem.querySelector('.menu--dropdown');

    titleElem.onclick = function() {
      menuElem.classList.toggle('open');
    };
  </script>

<script>
$('ul li > a').on('click', function(e) {
  var li = $(this).closest('li');
  if (li.find('ul.menu--dropdown').length) {
    if (!li.hasClass('active')) {
      e.preventDefault();
    }
    li.toggleClass('active');
  }
});
$(document).mouseup(function(e) {
  var div = $('ul li.active');
  if (!div.is(e.target) && div.has(e.target).length === 0) {
    div.removeClass('active');
  }
});
</script>


Может кто подскажет как в моем случае можно решить с помощью этих скриптов проблему?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы