Foros del Web » Programando para Internet » Javascript » Frameworks JS »

2 problemas en menu con mootools

Estas en el tema de 2 problemas en menu con mootools en el foro de Frameworks JS en Foros del Web. Buenas a todos, tengo un problema y espero que puedan echarme un poco de luz acá. Estoy armando un menu que tiene un efecto de ...
  #1 (permalink)  
Antiguo 14/06/2010, 10:42
 
Fecha de Ingreso: junio-2009
Mensajes: 85
Antigüedad: 14 años, 10 meses
Puntos: 1
2 problemas en menu con mootools

Buenas a todos, tengo un problema y espero que puedan echarme un poco de luz acá.

Estoy armando un menu que tiene un efecto de opacidad, hecho con mootools. El problema es un tanto dificil de explicar, pero es mas o menos asi:

Es un menú vertical, y cuando paso el mouse de abajo hacia arriba pasando por los diferentes items del menu, la animacion de opacidad funciona perfecto. Pero si el movimiento del mouse es de arriba hacia abajo, la animación aparece un tanto trabada, ejecutandose cuando voy por la mitad del item recién, y no se por qué pasa esto. Les dejo el código HTML, CSS y Javascript a ver si alguien sabe por qué pasa esto, y también dejo un enlace con el ejemplo del menú que estoy armando.

El segundo problema, es más una consulta. Soy novato en Javascript y mootools, y lo que quiero hacer es optimizar el código que utilizo para esta animación, ya que en estos momentos estoy utilizando una función por cada botón (pueden ver el código debajo).

Código HTML:
Ver original
  1. <link href="estilos.css" rel="stylesheet" type="text/css" />
  2. <script type="text/javascript" src="mootools-1.2.4-core-nc.js"></script>
  3. <script type="text/javascript" src="mootools-1.2-more.js"></script>
  4. <script type="text/javascript" src="menu.js"></script>
  5. <script type="text/javascript">
  6. window.addEvent('domready', function(){
  7.     $('drop_down_menu').getElements('li.menu').each( function( elem ){
  8.         var list = elem.getElement('ul.links');
  9.         var myFx = new Fx.Slide(list).hide();
  10.         elem.addEvents({
  11.             'mouseenter' : function(){
  12.                 myFx.cancel();
  13.                 myFx.slideIn();
  14.             },
  15.             'mouseleave' : function(){
  16.                 myFx.cancel();
  17.                 myFx.slideOut();
  18.             }
  19.         });
  20.     })
  21. });
  22. </head>
  23.  
  24. <div id="navegacion">
  25. <div id="linkbotn1"><a href="#" class="linkbotn1"><img src="images/inicio-bot-h.png" alt="" width="121" height="36" border="0" class="imgbotn1" /></a></div>
  26. <div id="linkbotn2"> <ul id="drop_down_menu">
  27.         <li class="menu"><a href="#" class="linkbotn2"><img src="images/empresa-bot-h.png" alt="" width="121" height="36" border="0" class="imgbotn2" /></a>
  28.         <ul class="links">
  29.                 <li><a href="#"><img src="images/quiensoy-bot-h.png" alt="" width="121" height="36" border="0" /></a></li>
  30.                 <li><a href="#">Link 2</a></li>
  31.             </ul>
  32.         </li>
  33.      </ul></div>
  34. <div id="linkbotn3"><a href="#" class="linkbotn3"><img src="images/clientes-bot-h.png" alt="" width="121" height="36" border="0" class="imgbotn3" /></a></div>
  35. <div id="linkbotn4"><a href="#" class="linkbotn4"><img src="images/servicios-bot-h.png" alt="" width="121" height="36" border="0" class="imgbotn4" /></a></div>
  36. <div id="linkbotn5"><a href="#" class="linkbotn5"><img src="images/grafica-bot-h.png" alt="" width="121" height="36" border="0" class="imgbotn5" /></a></div>
  37. <div id="linkbotn6"><a href="#" class="linkbotn6"><img src="images/contacto-bot-h.png" alt="" width="121" height="36" border="0" class="imgbotn6" /></a></div>
  38. <div id="linkbotn7"><a href="#" class="linkbotn7"><img src="images/enlaces-bot-h.png" alt="" width="121" height="36" border="0" class="imgbotn7" /></a></div>
  39. </div>
  40.  
  41. </body>



Código CSS:
Ver original
  1. ul {
  2.     margin:0;
  3.     padding:0;
  4. }
  5. li {
  6.     margin:0;
  7.     padding:0;
  8.     list-style-type:none;
  9. }
  10. li ul {
  11.     margin:0;
  12.     padding:0;
  13.     list-style-type:none;
  14. }
  15. #linkbotn1 {
  16.     background-image:url(images/inicio-bot.png);
  17.     background-repeat:no-repeat;
  18. }
  19. #linkbotn2 {
  20.     background-image:url(images/empresa-bot.png);
  21.     background-repeat:no-repeat;
  22. }
  23. #linkbotn3 {
  24.     background-image:url(images/clientes-bot.png);
  25.     background-repeat:no-repeat;
  26. }
  27. #linkbotn4 {
  28.     background-image:url(images/servicios-bot.png);
  29.     background-repeat:no-repeat;
  30. }
  31. #linkbotn5 {
  32.     background-image:url(images/grafica-bot.png);
  33.     background-repeat:no-repeat;
  34. }
  35. #linkbotn6 {
  36.     background-image:url(images/contacto-bot.png);
  37.     background-repeat:no-repeat;
  38. }
  39. #linkbotn7 {
  40.     background-image:url(images/enlaces-bot.png);
  41.     background-repeat:no-repeat;
  42. }



Código Javascript:
Ver original
  1. window.addEvent('domready', function(){
  2. $$('.imgbotn1,.imgbotn2,.imgbotn3,.imgbotn4,.imgbotn5,.imgbotn6,.imgbotn7').setStyle('opacity', 0);
  3. $$('.linkbotn1').addEvent('mouseenter', function(){
  4. var large = $$('.imgbotn1');
  5. large.fade((large.get('opacity') == 1) ? 0 : 1);
  6. });
  7. $$('.linkbotn1').addEvent('mouseleave', function(){
  8. var large = $$('.imgbotn1');
  9. large.fade((large.get('opacity') == 0) ? 1 : 0);
  10. });
  11. $$('.linkbotn2').addEvent('mouseenter', function(){
  12. var large = $$('.imgbotn2');
  13. large.fade((large.get('opacity') == 1) ? 0 : 1);
  14. });
  15. $$('.linkbotn2').addEvent('mouseleave', function(){
  16. var large = $$('.imgbotn2');
  17. large.fade((large.get('opacity') == 0) ? 1 : 0);
  18. });
  19. $$('.linkbotn3').addEvent('mouseenter', function(){
  20. var large = $$('.imgbotn3');
  21. large.fade((large.get('opacity') == 1) ? 0 : 1);
  22. });
  23. $$('.linkbotn3').addEvent('mouseleave', function(){
  24. var large = $$('.imgbotn3');
  25. large.fade((large.get('opacity') == 0) ? 1 : 0);
  26. });
  27. $$('.linkbotn4').addEvent('mouseenter', function(){
  28. var large = $$('.imgbotn4');
  29. large.fade((large.get('opacity') == 1) ? 0 : 1);
  30. });
  31. $$('.linkbotn4').addEvent('mouseleave', function(){
  32. var large = $$('.imgbotn4');
  33. large.fade((large.get('opacity') == 0) ? 1 : 0);
  34. });
  35. $$('.linkbotn5').addEvent('mouseenter', function(){
  36. var large = $$('.imgbotn5');
  37. large.fade((large.get('opacity') == 1) ? 0 : 1);
  38. });
  39. $$('.linkbotn5').addEvent('mouseleave', function(){
  40. var large = $$('.imgbotn5');
  41. large.fade((large.get('opacity') == 0) ? 1 : 0);
  42. });
  43. $$('.linkbotn6').addEvent('mouseenter', function(){
  44. var large = $$('.imgbotn6');
  45. large.fade((large.get('opacity') == 1) ? 0 : 1);
  46. });
  47. $$('.linkbotn6').addEvent('mouseleave', function(){
  48. var large = $$('.imgbotn6');
  49. large.fade((large.get('opacity') == 0) ? 1 : 0);
  50. });
  51. $$('.linkbotn7').addEvent('mouseenter', function(){
  52. var large = $$('.imgbotn7');
  53. large.fade((large.get('opacity') == 1) ? 0 : 1);
  54. });
  55. $$('.linkbotn7').addEvent('mouseleave', function(){
  56. var large = $$('.imgbotn7');
  57. large.fade((large.get('opacity') == 0) ? 1 : 0);
  58. });
  59. });



Y aca les dejo el resultado de esto:
http://pruebas-demos.com.ar/menu/menu.html

De antemano les agradezco a todos y espero sus respuestas!

Etiquetas: javascript, mootools, vertical
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:31.