Código Javascript:
Ver original
jQuery(window).load(function (){ console.log('1 ' + jQuery.cookie("scrollTop")); setTimeout(function() { jQuery('body').trigger('resize'); }, 200); if( 'referrer' in document && typeof document.referrer != undefined) { var url_parts = document.referrer.split("/"); var url = url_parts[0] + "//" + url_parts[2]; if(window.location.href.indexOf(url) == -1) { jQuery.removeCookie('scrollTop'); } } if(jQuery.cookie("scrollTop")){ jQuery('html, body').animate({ scrollTop: jQuery.cookie("scrollTop") }); } }); jQuery(window).bind('scroll resize', function() { var currentSection = null; jQuery('.section').each(function(){ var element = jQuery(this).attr('id'); if(jQuery(window).scrollTop() >= jQuery('#'+element).offset().top - 71) { currentSection = element; } }); jQuery.cookie("scrollTop", jQuery(window).scrollTop()); console.log('2 ' + jQuery.cookie("scrollTop")); });
Esto hace lo siguiente:
1. cuando hace scroll en la pagina este guarda en la cookie scrollTop la ubicacion de la ventana, lo envia a otra pagina.
2. Cuando se retorna a la misma página, si esta no viene de un referer(Es decir por ejemplo viene de escribir directamente la url) este elimina esa cookie.
3. Cuando vienen de un referer, se supone que debe aplicar esta funcion:
Código Javascript:
Ver original
if(jQuery.cookie("scrollTop")){ jQuery('html, body').animate({ scrollTop: jQuery.cookie("scrollTop") }); }
Pero no es asi, ya que primero ejecuta jQuery(window).bind ....
Eso lo veo en los logs que imprime en el orden:
2 0
1 0
2 1....
Entonces mi duda es se supone que debe prevalecer el load antes del bind, pero en mi caso pasa lo contrario... grrr! alguna sugerencia?