es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

cómo simular un mouse over sin eventos de mouse?

En esta pregunta hay 7 submenús en la barra de navegación, quiero que cuando se cargue el sitio web, se haga algo como pasar el cursor por encima de todos los menús uno por uno. No desencadenar eventos del ratón, solo manipular el DOM/estilo, debo escribir el código en JavaScript.

Aquí está uno de los submenús:

<div class="submenu">
  <ul class="linkmenu">
    <li class="d-md-none">
      <div class="nav-item standalone-nav"><span><a href="/wines/_/N-n" data-nav-label="Browse all Offers"><strong>Browse all Offers</strong></a></span></div>
    </li>
    <li>
      <div class="nav-item"><span>Type</span> <i class="arrow down"></i></div>
      . . . . .

    </li>
  </ul>
</div>
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para lograr el efecto deseado, podemos usar una combinación de JavaScript y CSS para simular un efecto de desplazamiento uno por uno en todos los submenús en la barra de navegación.

    Primero, seleccionemos todos los elementos de los submenús usando el método de consulta DOM querySelectorAll:

    const submenus = document.querySelectorAll('.submenu');
    

    A continuación, creemos un bucle que iterará a través de cada uno de los elementos de los submenús y agregará una clase CSS para simular un efecto de desplazamiento:

    submenus.forEach((submenu, index) => {
      setTimeout(() => {
        submenu.classList.add('hover-effect');
      }, index * 500);
    });
    

    En el ejemplo anterior, estamos utilizando el método setTimeout para retrasar la adición de la clase CSS en múltiplos de 500 milisegundos. Esto crea un efecto en cascada, donde cada submenú obtiene el efecto de desplazamiento aplicado uno tras otro, sin que se activen eventos del ratón.

    Finalmente, necesitamos definir la clase CSS que simulará el efecto de desplazamiento. Podemos hacer esto agregando las siguientes reglas a nuestra hoja de estilos:

    .submenu.hover-effect > .linkmenu > li:hover {
      background-color: #f2f2f2; /* Cambia el color de fondo para que coincida con tu diseño */
    }
    

    En este selector CSS, estamos apuntando al elemento de submenú que tiene la clase “hover-effect” aplicada, y aplicando el efecto de desplazamiento a sus elementos de lista secundarios. Puedes ajustar el color de fondo y otros estilos según sea necesario para que coincidan con tu diseño.

    Juntando todo, el código completo de JavaScript para simular un efecto de desplazamiento en todos los submenús de la barra de navegación se vería así:

    const submenus = document.querySelectorAll('.submenu');
    
    submenus.forEach((submenu, index) => {
      setTimeout(() => {
        submenu.classList.add('hover-effect');
      }, index * 500);
    });
    

    Y la clase CSS correspondiente:

    .submenu.hover-effect > .linkmenu > li:hover {
      background-color: #f2f2f2; /* Cambia el color de fondo para que coincida con tu diseño */
    }
    

Comments are closed.