11499 sujets

JavaScript, DOM et API Web HTML5

Salut!

J'ai un portfolio letsdovoodoo.com. C'est pour l'instant un site sur une page où je masque ou affiche des sections avec du jquery et des événements au clic sur des <li> principalement.

On m'a parlé de hash.location en JS pour pouvoir, sur un site d'une page comme le mien, utiliser précédent/suivant ou rentrer directement l'URL d'une section et y accéder, c'est très cool! et après des heures d'âpres batailles j'arrive à le faire fonctionner.

Le hic c'est que ça empêche les transitions entre les pages. J'ai pu régler le problème pour les pages internes mais pas pour le menu d'intro (la page avec le menu dans le losange) qui utilise une transition différente.

J'arrive au point où je comprends plus du tout ce que je fais alors je viens demander l'aide de personnes un peu plus calmes haha!

voici mon code :


if(location.hash){
                //Quand on rentre directement une ULR d'une section - ça marche
		newhash = window.location.hash.substring(1);
		$("section").hide();
		showPage(newhash);
	}

	else{
		//navigation "normale" - on accède au site depuis la page d'intro
		$("section#intro li a").click( function(e){

			e.preventDefault();

			idSection = $(this).attr('intro_id');
			console.log(idSection);
			
			//masque la section d'intro, affiche le header et la section sélectionnée
			$(this).parentsUntil("#intro").parent().fadeOut('slow', function(){
                                
 
			goIntro = true;

				
				$(".logoBorder").hide();
                                //Avec la gestion des hashs, je ne passe jamais dans cette fonction
				$("header").slideDown('slow', function(){
					$(".logoBorder").show();
					$("li#"+idSection+"H").addClass('currentTab');
					$("section#"+idSection+"").slideDown('slow');
				});
				
				
				//window.location.hash = $(this).attr("href");

			});
			slideHeader = true;
			window.location.hash = $(this).attr("href");
			currentSection = idSection;
			return currentSection;
		});
	}


et un lien vers mon avancé jusqu'à maintenant (à comparer avec la version de prod du site du coup) la version avec hash.location


Si vous avez l'occasion de jeter un œil, je vous en remercie grandement!