Aller au contenu

« Discussion Poképédia:Gadget generations » : différence entre les versions

Ajouter un sujet
→‎Problèmes : La section à partir de laquelle on change de génération s’en va parfois à l’autre bout de la page
(→‎Problèmes connus : Bogue de la section Stratégie)
(→‎Problèmes : La section à partir de laquelle on change de génération s’en va parfois à l’autre bout de la page)
 
Ligne 87 : Ligne 87 :


[[Utilisateur:Frigory|Frigory]] ([[Discussion utilisateur:Frigory|discussion]]) 21 juillet 2022 à 14:53 (UTC)
[[Utilisateur:Frigory|Frigory]] ([[Discussion utilisateur:Frigory|discussion]]) 21 juillet 2022 à 14:53 (UTC)
=== La section à partir de laquelle on change de génération s’en va parfois à l’autre bout de la page ===
C’est encore moi. Le titre de cette section est exagéré, ce que je veux dire c’est que parfois, quand on change de génération, la section sur laquelle on l’a fait va en dehors de l’écran et c’est désagréable de devoir la retrouver à la main. Évidemment, cela survient surtout quand on change de génération depuis ou vers les deux dernières générations, puisque deux générations affichées à la fois prennent beaucoup plus de place qu’une seule génération, et donc ça change considérablement les positions des sections sur la page.
Je pense que ce problème doit être réglé. À votre place, je ferais ça en ajoutant une ligne du genre :
<pre>
$(document).scrollTop($(bloc).offset().top);
</pre>
juste après l’appel à <code>createToc</code> (avant le commentaire « Conserve en mémoire le dernier changement de génération effectué » ; d’ailleurs, ça sert à rien de mettre cette donnée dans une balise, une petite variable JavaScript aurait très bien fait l’affaire). Du coup, il faut passer le <code>bloc</code> en paramètre à la fonction <code>generation</code>.
Et s’il vous plait, condensez-moi vos conditions pour les appels à <code>generation</code>. Je parle de ça :
<pre>
if ( genApparente == genActuelle && gen != genApparente && gen != genApparente - 1 ) generation( gen );
else if ( genApparente == genActuelle - 1 && gen != genApparente && gen != genActuelle ) generation( gen );
else if ( gen != genApparente ) generation( gen );
</pre>
À la place, il suffit d’écrire ça :
<pre>
if ( gen != genApparente && ( gen < genActuelle - 1 || genApparente < genActuelle - 1 ) ) {
generation( gen, e.target );
}
</pre>
[[Utilisateur:Frigory|Frigory]] ([[Discussion utilisateur:Frigory|discussion]]) 21 juillet 2022 à 15:39 (UTC)
164

modifications