Jump to content
  • 0

:hover в мобильных версиях


Coby1987
 Share

Question

Доброго времени суток!

Сделал меню 2-х уровневое, подуровень через :hover у ul. На десктопе все ок, а вот на мобильной версии как реализовать чтобы подменю открывалось не через наведение а по клику? Так например в стандартном меню от bootstrap4 сделано. Подскажите?

Link to comment
Share on other sites

6 answers to this question

Recommended Posts

  • 0

Сделать или отдельную кнопку, раскрывающая подменю.

Или иногда я использовал double tap
http://qaru.site/questions/412893/touch-device-single-and-double-tap-events-handler-jqueryjavascript
https://gist.github.com/attenzione/7098476

Link to comment
Share on other sites

  • 0

Нужно написать функцию на javascript + jQuery на событие клика.

Вот пример твоего меню:

<style>
.ul_menu ul li ul {
  display: none;
}
</style>

<div class="ul_menu">
  <ul>
    <li><span>пункт 1</span>
      <ul>
        <li>пункт 1.1</li>
        <li>пункт 1.2</li>
        <li>пункт 1.3</li>
      </ul>
    </li>
    <li><span>пункт 2</span>
      <ul>
        <li>пункт 2.1</li>
        <li>пункт 2.2</li>
        <li>пункт 2.3</li>
      </ul>
    </li>
  </ul>
</div>

<script type="text/javascript">
$(".ul_menu li").click(function(){
	$(this).find("ul").fadeToggle();
});
</script>

При клике на пункт меню будут открываться подпункты. При повторном клике подпункты будут закрываться.

Link to comment
Share on other sites

  • 0
20.04.2019 в 02:06, Drevko сказал:

При клике на пункт меню будут открываться подпункты. При повторном клике подпункты будут закрываться.

Это всё отлично, если у родительского пункта нет ссылки.

Ну и статья любопытная https://blog.usejournal.com/finally-a-css-only-solution-to-hover-on-touchscreens-c498af39c31c

Link to comment
Share on other sites

  • 0
10 часов назад, npofopr сказал:

Это всё отлично, если у родительского пункта нет ссылки.

Ну и статья любопытная https://blog.usejournal.com/finally-a-css-only-solution-to-hover-on-touchscreens-c498af39c31c

Это да, но как не крути, два взаимоисключающих события на одно действие не поставишь. Я использую в таком случае, например, кнопку справа от названия пункта со значком "+". 

Link to comment
Share on other sites

  • 0

Я обычно делаю, что если обнаружено touch-устройство (например по наличию window.ontouchstart или по media-запросу pointer: coarse), то перехватываю клики по меню и делаю им preventDefault.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy