2011-01-03 1 views
3

Voici l'exemple: http://jsfiddle.net/sammy/RubNy/de défilement revient par défaut après l'affichage: aucun dans Chrome/IE

Faites défiler la liste dans le conteneur div. Puis cliquez n'importe où dans la fenêtre pour masquer l'élément. Puis cliquez une fois de plus pour afficher l'élément. Vous remarquerez dans Chrome/IE que le parchemin est réinitialisé, mais dans Firefox, le parchemin reste tel que vous l'avez laissé.

Quel est le comportement standard, Chrome/IE ou Firefox? Devrais-je signaler cela à l'outil de suivi des problèmes Chrome?

Merci d'avance pour toute aide à ce sujet, et bonne année, et merci encore, et acclamations, et d'autres choses. = D

+0

J'ai mis à jour votre violon pour tester avec iframes. À partir de maintenant, seul Firefox ne conserve pas la position de défilement après le masquage d'un élément iframe. http://jsfiddle.net/RubNy/30/ –

Répondre

1

Bien que je ne suis pas sûr des deux navigateurs (Chrome ou Firefox) suit la norme sur celui-ci, je reprocherai à Chrome d'être incorrect pour ne pas "se souvenir" de la position du défilement. En d'autres termes, je favorise le comportement de Firefox, mais je ne suis pas sûr de ce qui est correct (standardisé).

Jusqu'à ce que quelqu'un indique ce qui est correct selon la documentation standard, je vais continuer à blâmer Chrome. Je rapporterai ce bogue au programme de suivi des problèmes de Chrome si je ne l'ai pas déjà fait. : P

0

Je ne sais pas qui sont à droite mais cela fonctionne:

var offset = 0; 
$(document).click(function(){ 
    if($('div:visible').length) { 
     offset = $('div').scrollTop(); 
    } 
    $('div').toggle().scrollTop(offset); 
}); 

J'espère que quelqu'un a une meilleure solution =/

+0

Il ne s'agit pas de trouver une solution à ce problème, mais de le signaler aux fabricants de navigateurs. Je sais que je peux utiliser la visibilité au lieu de l'affichage, ou -99999px en haut si la position est absolue. Mais ce serait bien si tous les navigateurs agissaient comme Firefox dans cette situation. Donc, je vais signaler ce bug à Chrome, et si le comportement de Firefox n'est pas un comportement standard, alors au moins, j'ai agité le pot un peu. – Sam

0

est juste une bizarrerie dans la façon dont les navigateurs rendent la div quand l'affichage change ...

Essentiellement, les navigateurs refusion le texte lorsque les changements de propriétés d'affichage ...

Cela provoque la même bizarrerie ...

$(document).click(function(){ 
    $('div').style.display = "block"; 
}); 

Si vous voulez que le défilement reste la même dans tous les navigateurs, la chose la plus facile à utiliser est la visibilité au lieu d'affichage ...

+0

Je comprends que c'est la propriété d'affichage qui provoque cela. Mais ce que je veux savoir, c'est quel comportement est le bon comportement. Je veux que cela soit signalé aux navigateurs qui se comportent mal. – Sam

Questions connexes