Partout sur le Web, lorsqu’on clique sur un lien qui mène vers une ancre dans la même page, le navigateur « saute » brutalement jusqu’à cette ancre. Le visiteur perd la notion de l’endroit où il se trouve et ne visualise pas la structure globale de la page. En termes d’ergonomie c’est assez mauvais, et on attend le navigateur qui trouvera la solution.
Dans l’immédiat, chacun peut améliorer cela sur son propre site SPIP. Le plugin Ancres douces fait une chose (et une seule) : il transforme toutes les ancres (<a href="#xxx">) des pages en « ancres douces », où le navigateur fait défiler doucement la page jusqu’à l’ancre. Ainsi le lecteur sait en permanence où il se trouve dans la page, et peut plus facilement remonter, etc.
On peut voir ce plugin en action sur le site des blogs du Monde diplo (cliquer sur « XX commentaires » ou sur les appels de note, par exemple).
Ce plugin est une intégration à SPIP de deux scripts jQuery d’Ariel Flesler, avec lesquels il est possible de faire plein d’autres jolis scrolls (voir les démos) :
— localScroll
— scrollTo
Restreindre ancres_douces à certains blocs
Si vous utilisez d’autres scripts javascripts utilisant aussi les ancres (par exemple un slider jquery), il est possible que des interférences se produisent avec ancres_douces.
Pour éviter ces interférences, il est nécessaire d’indiquer sur quel bloc ou quels types de blocs on veut restreindre le fonctionnement de ancres_douces.
Pour cela, on doit définir dans mes_options.php la constante "CONTEXTE_ANCRES_DOUCES".
Exemple :
- Pour restreindre au bloc d’id contenu ( convient sur un grand nombre de squelettes spip ) :
define (’ANCRES_DOUCES_CONTEXTE’,’#contenu’) ;
- pour restreindre à tous les éléments de classe ’ancres_douces’
define (’ANCRES_DOUCES_CONTEXTE’,’.ancres_douces’) ;
Bugs connus :
- fonctionne mal avec Opera. (corrigé en 1.2)



ancres douces.zip

Vos commentaires
# Le 21 juillet 2011 à 16:58, par Julien
En réponse à : Ancres douces
Bonjour,
j’ai mis dans config/mes_options.php :
Et j’ai affecté la class « ancres_douce » à certains éléments div de mon squelette mais cela ne marche pas. Cela agi sur tout la page !
Une idée ?
Merci beaucoup
# Le 5 décembre 2011 à 20:12, par Christian
En réponse à : Ancres douces
Il y a une erreur dans les exemples avec CONTEXTE_ANCRES_DOUCES !
il est indiqué :
alors qu’il faut :
Répondre à ce message
# Le 13 septembre 2011 à 10:17, par Gil FOURGEAUD
En réponse à : Ancres douces
Bonjour,
Les ancres douces ne fonctionnent pas avec du Rewrite url chez moi ...
/?page=rubrique&id_rubrique=7fonctionnerubrique/articlene fonctionne pasMerci
Répondre à ce message
# Le 26 juillet 2011 à 10:48, par junthro
En réponse à : Ancres douces
Bonjour,
j’ai un problème avec le plugin Ancres Douces sur Spip 2.1.8 : le défilement fonctionne sans problème lorsque je suis loggé en admin, mais si je me déconnecte un message s’affiche :
Précision : le Couteau Suisse est installé (indispensable), mais sa fonction « ancres douces » est désactivée. Inversement, lorsque je désactive le plugin Ancres Douces pour n’activer que la fonction du Couteau Suisse, le défilement doux ne s’opère pas. Et lorsque les deux sont activées : message d’erreur du plugin.
Et sinon mes pages sont en DOCTYPE XHTML transitional.
Ne voyant pas à quelle URL absolue il est fait allusion dans le pipeline.php, et ne connaissant rien non plus au javascript (cf jquery.scrollto.js), vos éclaircissements sont les bienvenus...
Répondre à ce message
# Le 9 février 2011 à 12:35, par JLuc
En réponse à : Ancres douces
Hello,
ce plugin fait des scrolls doux pour TOUTES les ancres douces. Or parfois, avec un autre plugin de diaporama ou de slider à onglets par exemple, on ne veut PAS que la fenêtre scrolle automatiquement lorsqu’on clique sur les thumbnails des pĥotos ou sur les onglets.
Y a t il un moyen d’exclure un lot d’ancres nommées du scroll doux ?
par exemple exclure les ancres commençant par ’onglet-’, ou au contraire, ne retenir que celles qui commencent par ’ancredouces-’...
# Le 9 février 2011 à 12:44, par JLuc
En réponse à : Ancres douces
Peut être serait il plus facile d’exclure toutes les ancres qui sont à l’intérieur d’un
<div>, par exemple, de classeexclusion_ancre_douce# Le 10 février 2011 à 20:00, par JLuc
En réponse à : Ancres douces
En fait, le plugin localscroll utilisé dans ce plugin est déjà prévu pour limiter les scrolls doux aux ancres dans un élément. L’exemple donné est :
$('#navigation').localScroll();L’objectif visé n’est donc pas immensément lointain...
# Le 16 février 2011 à 23:49, par JLuc
En réponse à : Ancres douces
mais ça ne scrolle plus doux si je modifie le javascript ainsi... donc je ne sais plus comment faire.
# Le 18 février 2011 à 18:17, par JLuc
En réponse à : Ancres douces
La fonctionnalité est intégrée au plugin et documentée. Configuration basique par le mes_options.php
Répondre à ce message
# Le 14 février 2011 à 12:50, par E-cosystems
En réponse à : Ancres douces
Bonjour,
J’utilise les ancres douces, bah, parce que c’est joli ;)
J’essaye de travailler un maximum l’accessibilité pour les personnes handicapées et j’ai un soucis avec les ancres douces.
Lorsqu’elles sont activées, les liens vers le contenu, menu... se font biens.
Par contre, pas moyen de naviguer avec la touche « tab ». Celle-ci renvoie vers le menu d’accessibilité.
Du coup, je les ai désactivées.
Évidemment, la touche « tab » marche bien quand les ancres ne sont pas activées.
Bonne journée à tous le monde et un grand merci à tous les contributrices et contributeurs !
Répondre à ce message
# Le 28 janvier 2011 à 10:15, par gregol
En réponse à : Ancres douces
Bonjour,
Je voulais savoir comment faire pour que l’Ancre Douce fonctionne avec des retours sur la page précédente. (pas la même page)
Processus :
1- J’ai une page qui présente une liste de mes articles.
2- Je descend dans ma page et sélectionne un article.
3- Je suis maintenant sur ma page de l’article sur laquelle il y a une bouton « menu » avec une ancre :
<a href="[(#URL_RUBRIQUE|ancre_url{#URL_ARTICLE})]" class="back">< menu</a>]
4- Je retourne par le bouton « rmenu », l’ancrage se fait bien mais sans douceur !
Pourquoi ? Comment ?
Quelqu’un peut-il me donner un indice ?
A bientôt,
G
Répondre à ce message
# Le 1er novembre 2010 à 00:02, par Pierre
En réponse à : Ancres douces
Bonjour !
Utilisé chez moi sous depuis le couteau suisse, je remarque un soucis avec la navigation au clavier : quand les ancres douces sont activées, si je tabule dans la page, par ex. je passe par un lien d’évitement (du style « aller à la recherche » avec comme cible l’id d’une div, d’une liste ou d’autre chose :
Si je rajoute « en dur » #recherche dans l’url et que je valide, cela fonctionne, même si le plugin est activé. J’ai essayé de mettre les liens en absolu, cela ne fonctionne pas plus...
Quelqu’un à t’il une idée pour que le focus clavier suive les liens ? Je ne connais pas bien javascript hélàs...
Répondre à ce message
# Le 26 août 2010 à 11:42, par Serg
En réponse à : Ancres douces
Bonjour. Ce plugin améliore bien la navigation avec les ancres dans un même article. J’ai juste un petit défaut que j’aimerai supprimer. Voilà, j’ai réalisé un article avec un sommaire et des titres. L’article étant très long, je navigue avec le sommaire (réalisé automatiquement avec le plugin inter-titre) dans l’article en utilisant les ancres sur les titres présents tout au long de l’article. La première navigation, c’est à dire le premier clic sur un titre du sommaire m’amène bien sur le titre dans le corps de l’article, mais sans l’effet ancre douce. Par contre toutes les autres navigations après la première s’effectue avec l’éffet d’ancre douce. Même problème pour tous les autres articles.
J’ai essayé d’activer le plugin intertitre avant et après le plugin ancre douce. Rien n’y a fait.
Si quelqu’un peut m’aider, je le remercie d’avance
Ma config :
Spip2.1, php5, CFG Sarka3.0 Notation Jeux Bonux zengarden ArticlePDF Boutondansletexte Mediatheque Lecteur Rainette corbeille Saisies francybox splickbox snippets odt2 mesfichiers facteur sauvegardeauto Nycoceros,Intertitres hiérarchisés,ancre douce
Hébergé chez free
Répondre à ce message
# Le 28 octobre 2009 à 14:04, par Stéphane Deschamps
En réponse à : Ancres douces
@Fil,
J’ai fait un checkout, bien sûr c’est super pas simple et pas de
return(false)à portée de main.En revanche j’ai l’impression que ça se joue sans doute aux lignes 92-94 de jquery.localscroll.js mais je ne veux pas committer n’importe quoi donc je suggère ici la modification :
L’avis de quelqu’un de plus versé que moi en jQuery serait grandement bienvenu...
Répondre à ce message
# Le 28 octobre 2009 à 13:42, par Stéphane Deschamps
En réponse à : Ancres douces
@Fil,
ça fait bien longtemps que je n’ai pas fait ça, je te fais signe si je n’y arrive pas...
Répondre à ce message