简体   繁体   中英

How to make website menu dropdown on hover rather than click

Looking for some help. I'm helping to upgrade a website from Drupal 7 to 8. One of the problems I cannot resolve is how to make the drop-down menus display when you hover over them.

You can see how it works on the live site here: https://eerr.org.uk/

And how it does not work here: https://www.drupal8.eerr.org.uk/

I wonder if someone can help me out, I am not good with CSS and HTML so any advice welcome.

Thanks Mark

EDIT

I am really hoping someone can help me edit the existing code not just send me a link to creating dropdown menus in stand-alone code.

The existing code seems to be generated in the following .twig file (Again I have no experience in developing in this)

themes/contrib/bootstrap_barrio/templates/navigation/menu--main.html.twig

'''

{#
/**
 * @file
 * Bootstrap Barrio's override to display a menu.
 *
 * Available variables:
 * - menu_name: The machine name of the menu.
 * - items: A nested list of menu items. Each menu item contains:
 *   - attributes: HTML attributes for the menu item.
 *   - below: The menu item child items.
 *   - title: The menu link title.
 *   - url: The menu link url, instance of \Drupal\Core\Url
 *   - localized_options: Menu link localized options.
 *   - is_expanded: TRUE if the link has visible children within the current
 *     menu tree.
 *   - is_collapsed: TRUE if the link has children within the current menu tree
 *     that are not currently visible.
 *   - in_active_trail: TRUE if the link is in the active trail.
 */
#}
{% import _self as menus %}

{#
  We call a macro which calls itself to render the full tree.
  @see http://twig.sensiolabs.org/doc/tags/macro.html
#}
{{ menus.menu_links(items, attributes, 0) }}

{% macro menu_links(items, attributes, menu_level) %}
  {% import _self as menus %}
  {% if items %}
    {% if menu_level == 0 %}
      <ul{{ attributes.addClass('nav navbar-nav') }}>
    {% else %}
      <ul class="dropdown-menu">
    {% endif %}
    {% for item in items %}
      {%
        set classes = [
          menu_level ? 'dropdown-item' : 'nav-item',
          item.is_expanded ? 'menu-item--expanded',
          item.is_collapsed ? 'menu-item--collapsed',
          item.in_active_trail ? 'active',
          item.below ? 'dropdown',
        ]
      %}
      <li{{ item.attributes.addClass(classes) }}>
        {%
          set link_classes = [
            not menu_level ? 'nav-link',
            item.in_active_trail ? 'active',
            item.below ? 'dropdown-toggle',
            item.url.getOption('attributes').class ? item.url.getOption('attributes').class | join(' '),
            'nav-link-' ~ item.url.toString() | clean_class,
          ]
        %}
        {% if item.below %}
          {{ link(item.title, item.url, {'class': link_classes, 'data-toggle': 'dropdown', 'aria-expanded': 'false', 'aria-haspopup': 'true' }) }}
          {{ menus.menu_links(item.below, attributes, menu_level + 1) }}
        {% else %}
          {{ link(item.title, item.url, {'class': link_classes}) }}
        {% endif %}
      </li>
    {% endfor %}
    </ul>
  {% endif %}
{% endmacro %}

'''

Learn how to create a hoverable dropdown menu with CSS.

 .dropdown-content { display: none; } .dropdown-content a { display: block; } .dropdown:hover .dropdown-content { display: block; }
 <div class="dropdown"> <button class="dropbtn">Dropdown</button> <div class="dropdown-content"> <a href="#">This</a> <a href="#">Shows </a> <a href="#">On</a> <a href="#">HOVER</a> </div> </div>

This is the minimum code neeeded for it to work. You can see more styling on the source.

Keep in mind that hover is not mobile friendly.

This is just an advice ; there's no hover event on mobiles and touch pads. So if your website might be used on these devices, you should either keep click or implement the touch event.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM