Estoy tratando de construir una botonera en JS, pero no quiero que se muestre sin estar seguro de que el usuario quiere hacerlo.
Para eso, pongo un setTimeoutl de unos 300ms o 500ms en forma de tiempo de seguridad. Y algo parecido pero con algo más de tiempo para cerrar la botonera. Bueno aquí ya surge el primer problema. Cuando pasa el ratón sobre la botonera, esta espera el tiempo indicado y se activa, a pesar de que uso la función clearTimeout[/B] en el mouseleave. Lo mismo pasa cuando dejo el tiempo de seguridad para que la botonera no se cierre demasiado pronto si el usuario quiere volver a ella. El caso es que tiene un setTimeout "automático" al cargar la página y este si que me permite detenerlo con el primer mouseenter. Este es el código:
Código:
He probado varias opciones, como por ejemplo hover y mouseover/mouseout, pero ninguna detiene el setTimeout. Si alguien sabe de qué forma podría conseguir lo que busco....function timeOut() { $('#botonera').animate({height:20}, "normal"); $("#btn1").slideUp(700); $("#btn2").slideUp(700); $("#btn3").slideUp(700); $("#btn4").slideUp(700); }; var wait = setTimeout(timeOut, 3000); function timeOut1() { $("#botonera").animate({height:40}, "fast"); $("#btn1").slideDown(300); $("#btn2").slideDown(300); $("#btn3").slideDown(300); $("#btn4").slideDown(300); }; function mostrar() { $("i").show(); }; function ocultar() { $("i").hide(); }; $('#botonera').mouseenter( function() { clearTimeout(wait); var wait1 = setTimeout(timeOut1, 500); var esp1 = setTimeout(ocultar, 100); }); $('#botonera').mouseleave( function() { clearTimeout(wait1); var wait = setTimeout(timeOut, 3000); var esp = setTimeout(mostrar, 3700); });
Soy bastante novato y suelo inventarme todo mi código, por lo que seguro que está lleno de errores de principiante... ¡¡Sé que escribo más de la cuenta!! jajaja
Gracias y un saludo!