buster a écrit :
Donc en résumé, (sur http://thelia-spip.magnitude-6.net/montage/news4.html), il ne s'agit pas du scroll des ascenceurs mais seulement du scroll qui se fait à l'aide des toutes petites flèches (oui je sais c'est petit, mais cela n'est pas moi qui a fait la créa - c'est petit, mignon joli
).
Un scroll vertical avec des petits boutons comme dans les mauvais sites en Flash? (...)
buster a écrit :
Tu commences à cliquer sur la flèche du haut, puis les news remontent avec un joli scroll (jquery -> animate({scrollTop............)
Sauf que là la flèche du haut fait remonter les contenus... comme le ferait la flèche du bas du clavier ou la molette de la souris vers le bas dans une page normale. Bref, c'est à l'envers. (...)
buster a écrit :
Je suis hyper satisfait de ce scroll.
Bon alors on va atténuer cette satisfaction rapidement, ça pourrait rendre service aux utilisateurs à l'avenir:
- en termes d'ergonomie c'est une catastrophe, le scroll étant à l'envers;
- ergonomie toujours: les boutons de scroll ont une surface très limitée, ce qui les rend difficilement cliquables;
- ergonomie et accessibilité: le focus au clavier sur les boutons de scroll est discret, ce qui fait qu'on peut facilement passer à côté...;
- ergonomie: la molette de la souris ne fonctionne pas (contrairement à une page normale, et donc au fonctionnement que l'utilisateur attend);
- ergonomie et accessibilité: les touches de direction du clavier ne fonctionnent pas (contrairement à une page normale, et donc au fonctionnement que l'utilisateur attend);
- compatibilité et accessibilité: si JavaScript est désactivé, l'essentiel des contenus est masqué.
Non, franchement, il y a peut-être de l'idée et du travail derrière mais objectivement c'est mauvais comme résultat.
buster a écrit :
Donc, jusqu'ici, je n'ai strictement aucun problème.
Comme je le montre plus haut, tu as toute une série de problèmes d'ergonomie et d'accessibilité, qui rendent les pages ainsi construites bien moins attrayantes et agréables à utiliser (ou tout bêtement possibles à utiliser) que des pages classiques où on utilise la barre de défilement globale.
buster a écrit :
Passons à présent à la suite : lorsque cette partie droite n'est pas dans la page elle même, mais est chargée après un click sur le lien "convictions" (sur l'exemple http://thelia-spip.magnitude-6.net/montage/news5.html).
Dans ce cas, ma page arrive bien (plugin livequery ou pas) dans le div (de droite) en animation (pas terrible à cause de la taille verticale grande), mais l'action des petites flèches n'a pas d'effet sur le scroll.
Le script du scroll calcule sans doute la hauteur du contenu. Il faudrait réinitialiser ou réinstancier ce script après le chargement de contenus supplémentaires.
buster a écrit :
Après enquête, j'ai compris que la page était chargée virtuellement.
Ça n'est pas vraiment ça. Les contenus chargés en Ajax et insérés dans le DOM sont... insérés dans le DOM. Reprenons:
- au chargement de la page, le serveur envoie une page HTML;
- à partir de cette page, le navigateur construit l'arbre DOM du document;
- les scripts qui s'exécutent ensuite (car en général les scripts sont exécutés après la construction de l'arbre DOM du document, ou plus tard encore suite à des actions de l'utilisateur) peuvent modifier le DOM;
- si tu regardes le code source (avec «Affichage > Code source de la page» dans Firefox, par exemple), tu vois le code HTML envoyé initialement par le serveur;
- tu peux aussi consulter le code source généré, qui correspond à l'état actuel du DOM, via Firebug ou la Web Developer Toolbar, ou encore en sélectionnant un contenu et en utilisant («Menu contextuel > Code source de la sélection»).
Tout ça est parfaitement normal. Mais comme tu charges des contenus après le chargement initial et la première exécution de tes principaux scripts, il y a un certain nombre d'actions à répéter (pour peu que les scripts soient prévus pour ça!) pour prendre en compte les nouveaux contenus.
buster a écrit :
Sur les deux exemples suivant, magnifique et super pro !!! en regardant le code source, c'est la même. Il ne se réactualise pas.
http://nettuts.s3.amazonaws.com/011_jQuerySite/sample/index.html
http://ecrantotal72.com/
Sur le premier exemple, avec Firebug, tu peux constater que le DOM est bien modifié à chaque clic sur le menu.
Pour le deuxième exemple, je n'ai pas pu le consulter.
buster a écrit :
il s'agit du problème de page chargée dynamiquement dans un div
Non, car tu ne charges pas une «page», c'est une vision erronée. Tu insères un certain nombre de noeuds DOM.
Une révision ou un apprentissage des bases de JavaScript, du DOM et de Ajax serait nécessaire.
buster a écrit :
Il semblerait que tout çà est normal (ajax)
Oui.
buster a écrit :
et que le "rebind" ou le plugin livequery résolve ce problème.
Pour le rebind, il me semble que ça ne concerne que les gestionnaires d'évènements. Donc ce ne serait pas suffisant ici.
Modifié par Florent V. (29 Nov 2008 - 00:09)