Est-il possible de prévenir le comportement par défaut de défilement du document, lors d'un événement popstate se produit?
Notre site utilise jQuery animation de défilement et de History.js et les modifications de l'état devrait faire défiler l'utilisateur dans les différentes zones de la page, que ce soit via pushstate ou popstate. Le problème, c'est le navigateur restaure la position de défilement de l'état précédent automatiquement lorsqu'un événement popstate se produit.
J'ai essayé à l'aide d'un élément de conteneur à 100% de la largeur et de la hauteur du document et faire défiler le contenu à l'intérieur de ce conteneur. Le problème avec ce que j'ai trouvé est qu'il ne semble pas être aussi lisse que le défilement du document; surtout si vous utilisez beaucoup de css3 comme une boîte-ombres et les dégradés.
J'ai aussi essayé de stocker le document de position de défilement lors d'une initiées par l'utilisateur de faire défiler et de les restaurer une fois le navigateur fait défiler la page (sur popstate). Cela fonctionne très bien dans Firefox 12, mais dans Chrome 19 il y a un scintillement dû à la page défile et restauré. Je suppose que c'est à faire avec un temps de retard entre le rouleau et le rouleau cas de feu (d'où la position de défilement est rétabli).
Firefox fait défiler la page (et les feux de l'événement scroll) avant popstate feux de Chrome et les feux de popstate d'abord, puis fait défiler le document.
Tous les sites que j'ai vu qui utilisent l'API de l'histoire soit utiliser une solution similaire à ceux ci-dessus ou tout simplement ignorer la position de défilement de changer lorsqu'un utilisateur passe en arrière/vers l'avant (par exemple, GitHub).
Est-il possible de prévenir le document défile sur popstate événements?