Problème de lien...

lhooq

Membre actif
28 Mars 2003
108
2
57
www.ericsa.ch
Bonjour,

Je suis en train de monter la maquette pour un site.
Il se trouve à cette adresse : http://www.geroudet.ch/proto/

Et j'ai un problème. Si on prend le menu du bas, (PRESENTATION, FABRICATION...), tous les liens pointent sur une page unique (pres_slide.php) qui ont comme lien :

Bloc de code:
<a class="arial10orange" href="pres_slide.php" onClick="goto('#acoif', this); 
return false">PRESENTATION</a>
et j'utilise le script suivant :

Bloc de code:
<script>

function goto(id, t){    
    //animate to the div id.
    $(".contentbox-wrapper").animate({"left": -($(id).position().left)}, 600);
    
    // remove "active" class from all links inside #nav
    $('#nav a').removeClass('active');
    
    // add active class to the current link
    $(t).addClass('active');    
}

</script>
Mais je n'arrive pas à pointer sur la rubrique correspondante, tous les liens arrivent en début de page sans tenir compte des ancres...

Ca fonctionne quand on est à l'intérieur du site, mais pas depuis la home!


Si quelqu'un à un début de solution, merci d'avance !

PS : merci de ne pas m'envoyer sur jquery.com, n'étant pas programmeur ;-)

Eric
 
Mais tu l'a chopé où ce script ?

Pourquoi tu n'as pas ton ancre #acoif dans ton href= ?
Tes liens ne sont pas valides sémantiquement parlant pour moi c'est un mauvais cript (même si ton problème ne vient pas de là).

Et surtout, peux-tu expliquer plus clairement ça (car, c'est probablement là qu'est techniquement ton problème) :

Ca fonctionne quand on est à l'intérieur du site, mais pas depuis la home!

Détaille la structure de ton site, nom des pages, sous dossiers, etc. Qu'apelle-tu "intérieur du site", et "la home" ?
 
Alors, déjà, dans leur démo, dans href il doit y avoir seulement "#" (c'est à dire rien, pour faire simple, un faux lien) et toi tu as une adresse de page.

Ensuite :
est-ce que ce que tu veux faire, c'est faire un lien depuis la page index vers un des slides de la page articles_slide.php ?
Si c'est ça, le script ne semble pas conçu pour (ce qui montre bien la faiblesse de ce type de liens qui ne fonctionnent plus du tout sans javascript).
Si tu regarde bien leur démo, quand on clique sur un des liens vers un slide, l'ancre (#etc) n'apparait pas dans la barre d'adresse, ce qui rend impossible la création d'un lien vers un des slides depuis une autre page. Et, accessoirement est un comportement aberrant et peu accessible.

Il faut que tu trouve un meilleur script où les liens sont normaux, c'est à dire sous la forme <a href="www.monadresse.com/ma-page.php/#mon-ancre" et où le javascript ne gère que l'effet de scroll horizontal (de "slide" ou de "tabs").

Je n'ai pas de script particulier à te conseiller mais il y en a de telles quantités que ça doit bien se trouver.
 
Dernière édition:
Tiens, j'ai repensé à ce script qui a fait ses preuves :

http://demos.flesler.com/jquery/localScroll/
http://demos.flesler.com/jquery/localScroll/#section1b
http://demos.flesler.com/jquery/localScroll/#section2c

Ce sont 3 liens vers la même page mais comme tu vois ils sont différents et donc, fonctionnent pour aller au slide souhaité, même depuis une page extérieure.

Il marche aussi bien pour scroller des pages entières (je m'en sers plutôt comme ça) que dans une div comme dans l'exemple (c'est ce qu'il te faut) et on a l'effet de scroll même si on arrive d'une page extérieure.

Et comme il est correct au niveau du HTML, les liens fonctionnerons même si javascript est désactivé (seul l'effet de scroll sera supprimé) et le contenu de ton site sera mieux référencé par les moteurs de recherche.

Tu n'as qu'à regarder dans le ode source pour voir comment c'est implanté.
 
Dernière édition: