Pour des ancres particulières, je t'ai mis un exemple ici dans mon second exemple de code (page2.html). Ce que tu as fait n'y ressemble en rien, c'est sur $('html,body') qu'il faut faire l'animation. Il aurait fallu faire :
Mais tu vas te retrouver face à un problème car si le hash devient #anchor-drome c'est très certainement que dans ta page appelante tu défini le hash avec :Code:
1
2
3
4
5
6
7
8
9
10 <script> $(function() { $(".lien").click(function(){ var ancre = $('#milieu'); if(ancre.length) { $('html,body').animate({scrollTop: ancre.offset().top},"slow"); } }); }); </script>
Et comme plus bas dans le code, l'évènement $(window).on('hashchange' charge le contenu d'une page au changement du hash... le code va essayer de charger "anchor-drome.php".Code:
1
2
3
4
5 $(".lien").click(function () { /* modifie le hash avec la valeur de $(this).data("target"), c.a.d. l'attribut data-target du lien */ $(location).attr('hash', $(this).data("target")); $('html,body').scrollTop(0); });
Bref il faudrait choisir ce que tu veux faire onclik sur la classe "lien" mais tu ne peux pas à la fois demander de scroller dans la page et de charger une autre page car c'est incompatible.