2010-05-24 8 views
4

une fois de plus un jQuery, problème de scintillement de Firefox. (pas vacillante dans IE6/7/8, Safari)jQuery SlideDown Flickering dans Firefox

J'uploadé une page par exemple ici: http://sithlord.bplaced.net/testing/jquery_flickering/flickering.html

Il y a deux conteneurs div. La div intérieure est celle que je cache. Le conteneur extérieur est le conteneur d'emballage avec les éléments de style. J'ai trouvé que le scintillement ne se produisait qu'avec la boîte de sélection. Sans la SelectBox, il n'y a pas de scintillement.

Mais ce n'est pas tout: (je ne peux pas poster un deuxième lien hypertexte: son même lien que ci-dessus, seul changement « flickering.html » à not_flickering.html) Option

Dans ce cas, je choisis un faible » "- Comme vous pouvez le voir, le scintillement disparaît dans ce cas. La même chose se passe, quand il y a moins d'options au total. (moins de 20)

La seule solution que je trouve supprime le selectbox :)

Toutes les idées, pourquoi cela se passe et comment y remédier?

Merci!

+0

problème connu avec la façon dont Firefox gère moderne CSS https://bugzilla.mozilla.org/show_bug.cgi?id=787647 – hinekyle

Répondre

0

Trouvé post. Essayez de définir une largeur ou une hauteur sur la division cachée. J'ai remarqué que vous n'avez aucun style sur vos divs, donc c'est possible que cela fonctionne.

Metropolis

+0

Salut Metropolos, Merci pour votre réponse. Vous voulez dire quelque chose comme ça? http://sithlord.bplaced.net/testing/jquery_flickering/hidden_select_appended.html Mais maintenant vous obtenez un autre mauvais effet. Vous "voyez" la boîte de sélection apparaître. Et il ya encore la question, pourquoi ce scintillement apparaît avec de grandes boîtes de sélection cachées :) Salutations Sithlord – Sithlord

+0

Largeur et Hauteur arent helpin. Même scintillement. – Sithlord

+0

Juste pour coups de pied .... essayez de changer tous les balises p en balises div ... – Metropolis

0

S'il vous plaît voir http://dev.jquery.com/ticket/5743 pourquoi ces choses sont généralement possibles avec jQuery. En bref, la fonction css sans paramètres prétend seulement retourner des valeurs sans rien mettre à jour, mais met à jour le DOM dans certains cas.

5

débordement: masqué; appliqué directement aux travaux div contenant.

0

Je suis un peu en retard à ce sujet, mais j'ai rencontré un problème similaire. Ma solution: régler l'affichage: aucun à la sélection avant l'animation, puis afficher: bloquer après. Exemple:

$("div#hidden").hide(); 
    $("a").click(function(e) { 
    e.preventDefault(); 
    $("div#hidden select").css('display','none'); 
    $("div#hidden").slideDown(1000); 
    $("div#hidden select").css('display','block'); 
    }); 
}); 

Vous pouvez également utiliser les fonctions jquery show/hide si vous le souhaitez.