[Résolu] Offset pour remonter la page avec pagination ajax

Salut,

il me semble qu’il y a moyen de configurer un décalage (offset) pour que la page ne remonte par jusqu’en haut quand on a une pagination ajax, par exemple dans le cas où on a un bandeau fixe en haut de page. Ceci pour éviter que le début du contenu soit masqué par le bandeau justement.

J’ai fouillé un peu partout mais je n’ai pas retrouvé l’info.

Si quelqu’un·e a ça sou le coude…

La balise #ANCRE_PAGINATION ?

Regarde du côté de positionner_marge cf Ajuster le défilement de $.positionner(), notamment dans le cas d'un header en position fixed (6577e680) · Validations · spip / prive · GitLab

Et pour info, c’est supprimé en SPIP 5 et il est conseillé d’utiliser scroll-margin à la place cf Retour sur la suppression de jQuery.spip.positionner_marge (#85) · Issues · spip / prive · GitLab

Ah mais oui, c’est ça, merci. Pas étonnant que je ne retrouvais pas…:smiley:

Mais je dois rater un truc car ça ne semble pas fonctionner comme attendu.

J’ai ajouté ça dans ma css :

:root {
    --scroll-margin:170px;
}

#pagination_articles { scroll-margin: var(--scroll-margin); }

Quand je clique sur le lien page 2 de ma pagination ajax, ça ne prend pas en compte la marge (#pagination_articles se retrouve maqué par mon bandeau fixe) mais si je recharge juste après (F5 sans rien de plus), la marge est bien prise en compte (#pagination_articles est bien visible comme attendu).

Par contre, si je n’ajaxe pas ma pagination (donc changement de page complète), ça fonctionne comme attendu.

Tu n’as pas testé avec positionner_marge ? Un exemple ici Sourcegraph

1 « J'aime »

Ça marche avec positionner_marge effectivement, merci pour la source.

Par contre, ça n’a pas la souplesse de scroll-margin en CSS qui permet d’ajuster la marge en fonction de la taille de l’écran.

En tout cas, ça résout mon pb :grinning: