Je fais référence à un pansement pour les versions IE<7 pour l'affichage des png avec transparence sous IE
cf http://www.developpez.net/forums/showthread.php?t=86431
le code fonctionne très bien pour la transparence du png, mais pas si l'image est mappée..
L'explication, est la suivante:
la fonction ajoute un div ou un span avec une image en background et fait jouer un filtre de transparence de directX (rien que ça)...
Le souci est que du coup le map associé à l'image initiale est perdu.
Il m'est alors venu l'idée de contourner le problème au moyen d'une image gif entièrement transparente par dessus le div ajouté qui supporterait alors le map.
je sens que je brule mais je n'y arrive pas ...:
Voici l'avancement de mon code:
Si le coeur vous en dir ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 var arVersion = navigator.appVersion.split("MSIE") var version = parseFloat(arVersion[1]) if ((version >= 5.5) && (document.body.filters)) { 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 img = document.images[i] var newDiv=document.createElement('div'); var imgName = img.src.toUpperCase() if (imgName.substring(imgName.length-3, imgName.length) == "PNG") { newDiv.id = (img.id) ? "id='" + img.id + "_pngfix' " : "" newDiv.className = (img.className) ? img.className : "" newDiv.title = (img.title) ? img.title: ""; newDiv.style.cssText='display:inline-block;'+img.style.cssText; if (img.align == "left") {newDiv.style.styleFloat= "left"} ; if (img.align == "right") {newDiv.style.styleFloat= "right"} ; newDiv.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'" + img.src + "\', sizingMethod='scale')"; newDiv.style.zIndex=img.style.zIndex-1; img.style.zIndex=newDiv.style.zIndex+1; img.parentNode.appendChild(newDiv); if(img.useMap){img.src="SitePics/trsppngfix.gif";} } } } }
merci par avance
Partager