le MEMO du WEB développeur
 

••• Astuces de programmation •••   Liste des Mémos, astuces et bonnes pratiques

Garder une variable de session après fermeture du navigateur - PHP
Créer un bouton imprimer sur sa page web - Javascript
Empêcher de coller du texte dans un champs input de type text - JQuery
Retrouver les coordonnées latitude longitude d'un endroit avec Google Map - Divers
Ajouter un masque de saisie dans un champs input text - JQuery
Une image de background aléatoire - CSS
Empêcher l'autocomplétion dans les formulaires - HTML
Une liste d'articles au hasard dans Wordpress - Wordpress
DatePicker de JQuery : Déployer le calendrier à l'ouverture de la page - JQuery
Apparition d'un élément en fondu avec JQuery sur le survol de souris - JQuery
Détecter un click à l'extérieur d'un élément avec JQuery - JQuery
Afficher une image différente selon la date de l'année en javascript - JQuery

Atteindre une ancre avec JQuery - JQuery

→ Cliquez moi pour déplacer la page vers l'élémént d'identifiant #monancre ←



Mon ancre

Une ancre dans une page HTML est un point de repère dans la page vers lequel on va faire un lien afin que le haut de la fenêtre du navigateur se positionne directement sur ce point (au lieu d'avoir à scroller à la main pour y parvenir). Très pratique pour les pages avec beaucoup de contenu.

Pour créer une ancre, on affecte un identifiant quelconque, ici  id="monancre" à l'élément de la page vers lequel on veut diriger notre visiteur, et on rajouter un lien à l'endroit de la page où l'on propose au visiteur d'être redirigé. La page est donc rechargée.

Méthode classique d'ancrage en HTML

<div id="monancre"> </div>
<a href="http://www.monsite.fr/mapage.php#monancre"> 
 Ce lien vous redirige vers l'élément #monancre de la page 
</a>

Ancre JQuery : faire glisser une page vers un point défini de la page

JQuery nous offre une méthode plus élégante visuellement, en utilisant la fonction d'animation animate, utilisée sur memo-web.fr, qui  (ici par glissement), déplacera le navigateur vers l'ancre désirée.

Après avoir préalablement déclaré le script jquery, on peut par exemple proposer au visiteur de cliquer sur l'élément d'identifiant #redirection pour amener délicatement l'élément d'identifiant #monancre, en haut de notre page, grâce aux fonctions animate et scrollTop .

 

Code HTML :

<div id="redirection">
  Cliquez moi pour déplacer la page vers l'élément d'identifiant #monancre
</div>
<div id="monancre"> Mon ancre</div>

Code JQuery :

$(document).ready( function () {
   $('#redirection').click(function() {
     $('html,body').animate({scrollTop: $("#monancre").offset().top}, 'slow'      );
   });  
}) 

 

publié le 18/12/2011 par Memo Web
Astuce
Commentaire :
Bonjour, j'ai ma page home qui contient la partie contact en bas de la page. Mon menu de navigation contient un bouton "contact". Donc quand je suis sur la "home" et que je veux aller dans contact, je clique sur le bouton, et grace aux codes ci dessus, ca scroll jusqu'a ma partie contact. Jusque la tout va bien. Par contre, lorsque je suis sur une autre page, je voudrais que lorsqu'on veut aller dans contact, ca aille sur le haut de ma page "home" ( pour que l'internaute sache qu'il revient dans la page "home") et que ca scroll automatiquement a la partie contact. En gros je voudrais que mon bouton "contact" sur les autres pages autre que la "home" ait d'abord une premiere fonction qui l'emmene sur la page "home" puis une deuxieme fonction qui scroll automatiquement a la partie contact. Quelqu'un pourrait-il me dire si c'est possible, et si oui, comment faire? Merci :)
par inconnu, le 17/09/2014
Merci beaucoup pour ce petit tuto qui est très pratique et qui marche du premier coup ;je voudrais seulement savoir quels sont les autres effet autre que slow?
Merci
par inconnu, le 16/04/2014
.Merci beaucoup pour ce tuto, j'ai bien galéré avant de le trouvé. Merci
par inconnu, le 12/03/2014
J'ai aussi "offset is undefined" et mon ancre existe pourtant dans ma page
par inconnu, le 21/08/2013
offset is undefined
par inconnu, le 10/07/2013
Si offset is undefined, c'est que vous n'avez pas déclaré dans votre code votre élément qui constitue votre ancre (d'identifiant #monancre dans le code ci dessus). L'élément sur lequel va s'arrêter votre page.
par tarabusk, le 10/07/2013
Commenter le Mémo :

Détecter lorsqu'on appuie sur la touche entrée en JQuery - JQuery
Comment ne pas interpréter une commande HTML à l'affichage - HTML
Padding et margin en hauteur ne fonctionnement pas sur éléments inline - HTML
Revenir à la page précédente du navigateur - HTML
Trouver le chemin canonique absolu d'un répertoire - HTML
Faire appel à un fichier CSS à l'intérieur d'un autre fichier CSS - CSS
Faire clignoter un élément avec JQuery - JQuery
Ajoutez vos propres Mémos sur MEMO-WEB

Il suffit de vous créer un compte sur le site

Vous pourrez choisir un thème parmis l'une des catégories proposées par MEMO-WEB.

Rédigez votre Mémo.
Après validation par MEMO-WEB, il sera mis en ligne.
Ajouter vos Mémos