2010-04-13 3 views
1

J'ai une bascule jquery qui anime et affiche un DIV. J'ai un PNG transparent, l'image de fond de type ombre portée, et quand il apparaît, je vois un fond noir puis il disparaît une fois l'image chargée ...jquery bascule et transprent PNG

est-il un moyen de contourner cela? est-ce un bug? Je l'ai animé lentement, alors peut-être que cela a quelque chose à voir avec ça ...

devrais-je le montrer()?

Répondre

1

Ceci est un bug dans IE.

Aucune version actuelle d'IE ne prend en charge le proeprty CSS opacity, donc jQuery utilise le filtre Alpha à la place. Cependant, les filtres forcent l'élément à être totalement opaque, de sorte qu'ils ne fonctionnent pas correctement avec les fichiers PNG transparents.

Pour utiliser des fichiers PNG transparents dans des éléments semi-transparents, les fichiers PNG doivent être appliqués à l'aide du filtre AlphaImageLoader (même dans IE8). Par exemple:

if ($.browser.msie) 
    $(something).css({ 
     background: 'none', 
     filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="/Folder/Image.png", sizingMethod="scale"),alpha(opacity=100)' 
    }); 

(Ce code fonctionne, je l'utilise en ce moment)

+0

Notez que même alors, la combinaison de '' alphaimageloader' et alpha' est pas tout à fait la même chose que 'opacité 'serait. La transparence par pixel semble être 'max (image_opacity, filter_opacity)' au lieu de 'image_opacity * filter_opacity'. (Ce n'est pas toujours un effet déplaisant dans une animation.) – bobince

+0

puis-je l'ajouter à mon fichier .js existant? quand je fais, je reçois une erreur "missng"); "... voici ce que j'ai: $ (document) .ready (function() { $ ('# business-blue'). hide(); cliquez sur (function() {. $ ('business-bleu #') animés ({opacité: 'bascule'}, 800); return false;}) $ ('a # biz-bleu-LNK). ; }); –

+0

@SLaks il semble qu'il y ait un 'point de repère' manquant ... parce que je reçois une erreur ... –