2011-12-21 4 views
1

J'utilise Scrollable de jQuery Tools comme moyen de naviguer sur un site entier d'une seule page.Comment faire un lien profond avec le défilement des outils de jQuery

Navigation ressemble à ceci:

<div id="mainNavContainer"> 
     <nav> 
      <a id="logo" href="#home" title="Hughes Opticians, Delmar, NY"></a> 
      <a href="#who-we-are" title="Who We Are">Who We Are</a> 
      <a href="#eye-exams" title="Eye Exams">Eye Exams</a> 
      <a href="#gallery" title="Gallery">Gallery</a> 
      <a href="#eyewear" title="Eyewear">Eyewear</a> 
      <a href="#contact-lenses" title="Contact Lenses">Contact Lenses</a> 
      <a href="#contact" title="Contact">Contact</a> 
     </nav> 
</div> 

jQuery pour qu'il ressemble à ce feu:

$("#homeScrollable").scrollable({circular:true, next:'.mainNext', prev:'.mainPrev'}).navigator({navi:'#mainNavContainer nav'}); 

Ainsi, la navigation se déplace horizontalement vers la bonne page, mais le hachage ne va pas à la URL, ni je peux lier à une diapositive.

Fondamentalement, comment puis-je à la fois le lien profond, mais aussi utiliser le nav comme cible du navigateur du plugin?

En réponse à la réponse ci-dessous,

J'ai essayé à tester:

var hash = self.document.location.hash.substring(1) ; 
    if(hash == "home"){ 
     console.log('Home page') 
    } 
    if(hash == "who-we-are"){ 
     console.log('Who we are page') 
    } 
    if(hash == "eye-exams"){ 
     console.log('Eye Exams page') 
    } 
    if(hash == "gallery"){ 
     console.log('Gallery page') 
    } 
    if(hash == "eyewear"){ 
     console.log('Eyewear page') 
    } 
    if(hash == "contact-lenses"){ 
     console.log('Contact Lenses page') 
    } 
    if(hash == "contact"){ 
     console.log('Contact page') 
    } 

Console fait écho à chaque message console.log deux fois. Ne devrait-il pas simplement faire écho à l'étiquette de hachage actuelle de mon URL?

+0

Vous devriez faire si '(hachage == « # contact ")' maintenant vous demandez 'Si hash n'est pas # contact.' –

+0

Duh! Je vous remercie. – Keefer

Répondre

1

Revenant sur ma réponse précédente, j'ai trouvé quelque chose propre:

unescape(self.document.location.hash.substring(1)); 

Donc, avec cela, vous pouvez faire quelque chose comme:

//onload 
var hash = self.document.location.hash.substring(1) ; 
if(hash != ""){ 
    //Run your scrollto code with the hash var 
} 
+0

Cela semble prometteur. Malheureusement, je n'ai aucune idée de comment faire cela. Est-il possible de poster des extraits de code d'un exemple de saisie de l'URI et de la fonction scrollTo? – Keefer

+0

Utilisez-vous PHP? –

+0

Oui. PHP & jQuery – Keefer

Questions connexes