Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/04/2016, 06:47
tonigomila1988
 
Fecha de Ingreso: mayo-2011
Ubicación: Palma de Mallorca
Mensajes: 108
Antigüedad: 13 años, 5 meses
Puntos: 4
Clase CSS no se modifica cuando cambio página

Hola a todos:

Estoy realizando un menú con delay por que el menú tiene incluido un efecto de animación y lo que quiero lograr es que cuando finalice la animación, te redirija a la página en concreto.

Eso consigo hacerlo, pero el problema es que la clase menu_item--current no cambia cuando cambio de página.

Código Javascript:
Ver original
  1. // JavaScript Document
  2.  
  3. (function()
  4. {
  5.     [].slice.call(document.querySelectorAll('.menu')).forEach(function(menu)
  6.     {
  7.         var menuItems = menu.querySelectorAll('.menu__link'),
  8.         setCurrent = function(ev)
  9.         {
  10.             ev.preventDefault();
  11.             var item = ev.target.parentNode; // li
  12.             // return if already current
  13.             if (classie.has(item, 'menu__item--current'))
  14.             {
  15.                 return false;
  16.             }
  17.             // remove current
  18.             classie.remove(menu.querySelector('.menu__item--current'), 'menu__item--current');
  19.             // set current
  20.             classie.add(item, 'menu__item--current');
  21.            
  22.             // He añadido esto
  23.             var goTo = this.getAttribute("data-url");
  24.             setTimeout(function(){window.location = goTo;},500);
  25.         };
  26.        
  27.         [].slice.call(menuItems).forEach(function(el)
  28.         {
  29.             el.addEventListener('click', setCurrent);
  30.         });
  31.     });
  32.    
  33.     [].slice.call(document.querySelectorAll('.link-copy')).forEach(function(link)
  34.     {
  35.         link.setAttribute('data-clipboard-text', location.protocol + '//' + location.host
  36.         + location.pathname + '#' + link.parentNode.id);
  37.         new Clipboard(link);
  38.         link.addEventListener('click', function()
  39.         {
  40.             classie.add(link, 'link-copy--animate');
  41.             setTimeout(function()
  42.             {
  43.                 classie.remove(link, 'link-copy--animate');
  44.             }, 500);
  45.         });
  46.     });
  47.    
  48. })(window);

Ese script es el que gestiona el menú (Incluido en el pack del menú).

http://agomilag.16mb.com/

Aquí la página donde tengo el problema.

¿Qué me falta para que funcione correctamente?

Un saludo a todos y gracias por la ayuda :)