Forums d'entraide informatique - Les forums de PCW

Version complète : [javascript] Transparence des PNG sur IE
Vous consultez actuellement la version basse qualité d'un document. Voir la version complète avec le bon formatage.
Bonsoir,

j'ai un petit script JS pour la transparences des png sous IE,
Il n'utilise aucune image ce que je trouve plutôt pas mal, il se charge asser rapidement ce qui est un bon point aussi..
par contre il ne fonctionne que pour la balise img, ce qui fait que toutes les images qui sont mis en css avec la commande 'background' ne sont pas pris en compte, c'est là qu'est l'os Sad

peut on corriger ce problème sans trop augmenter le volume du script?
est ce que c'est possible sans utiliser d'image et est-ce la meilleur méthode?

Merci d'avance Smile



<script language="JavaScript" type="text/JavaScript">
function correctPNG() // correctly handle PNG transparency in Win IE 5.5 or higher.
{
for(var i=0; i<document.images.length; i++)
{
var img = document.images[i]
var imgName = img.src.toUpperCase()
if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
{
var imgID = (img.id) ? "id='" + img.id + "' " : ""
var imgClass = (img.className) ? "class='" + img.className + "' " : ""
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
var imgStyle = "display:inline-block;" + img.style.cssText
if (img.align == "left") imgStyle = "float:left;" + imgStyle
if (img.align == "right") imgStyle = "float:right;" + imgStyle
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>"
img.outerHTML = strNewHTML
i = i-1
}
}
}
window.attachEvent("onload", correctPNG);
</script>[/i]

Salut vous deux,

Ton script JavaScript ne fait rien d'autre que ajouter une propriété CSS aux images en PNG...

Donc en prenant cette propriété CSS et en la mettant dans ta feuille de style pour les éléments qui ont un background-image en PNG ça devrait fonctionner Wink

C'est pas automatique mais de toute façon des éléments avec un background-image en PNG, sont en généralement pas générés par l'utilisateur (comme ca pourrait être le cas pour une image sur un forum).

Note : la propriété CSS à utiliser - "filter:" - n'est pas valide à ma connaissance, inclus-la donc dans uen feuille CSS spéciale pour IE que tu incluera dans ta page avec des commentaires conditionnels HTML Wink
URLs de référence