Utilisez une approche à plusieurs niveaux: placer un élément div sur le dessus de l'objet flash, faire la même taille et transparente. C'est tout. Aucun JavaScript requis. Et pour rendre IE6/7/8 heureux, cela ne marche bien sûr pas, donc on ajoute un truc: un fond et une opacité nulle. Vous souhaiterez peut-être ajouter le CSS uniquement IE dans un fichier distinct pour empêcher l'invalidation CSS.
Important: pour que cela fonctionne, wmode
doit être réglé sur opaque
(comme l'a noté TheBrain plus tôt), le parent div
doit disposer d'un ensemble de position, l'enfant div
doit avoir position:absolute
et width
/height
du flash animation. Les codes opacity
, filter
et background-color
sont uniquement destinés à la compatibilité IE6/7/8. Le code tel qu'il est fonctionne à travers le navigateur (à l'exclusion de certains détails pour plus de clarté) et est demonstrated on this page dans son intégralité.
** Mise à jour: ** La largeur et la hauteur de l'élément parent div
doivent être définies pour empêcher l'insertion de certaines bordures non couvertes. Par défaut, un élément div correspond à 100% de largeur. IE ajoute une marge de gauche et FF ajoute une marge inférieure à l'animation flash. En définissant explicitement les dimensions, cela fonctionnera comme prévu. Pour prouver que la couverture est placée correctement, changez la couleur et l'opacité de la couverture-div. Cette modification est également mise à jour dans le demo page.
<div style="position:relative;width:728px;height:90px;">
<div style="position:absolute;
width:728px;height:90px;
background-color:white;
opacity:0;filter: alpha(opacity=0);">
</div>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
width="728" height="90">
<... params etc ...>
<param name="wmode" value="opaque" />
<embed width="728" height="90"
type="application/x-shockwave-flash"
wmode="opaque"
etc-params=xyz>
</embed>
</object>
</div>
Je ne crois pas que vous pouvez le faire en changeant le code html plongement. Il pourrait y avoir quelques façons de le faire comme peut-être intégrer un swf transparent sur le dessus d'un autre swf, mais je ne sais pas si vous pouvez le faire puisque je ne me hasarde pas beaucoup en HTML. – Allan
Merci, je pensais en ce sens, mais en utilisant un gif transparent. Je vais essayer. –