Hola a todos:
Tengo en mi página web fotos en formato png y consigo verlas perfectamente con Internet explorer7. Pero con uno inferior al 7 no me muestra las transparencias.
Me podeis ayudar y decirme qué puedo hacer.
Gracias.
| |||
Problemas con fotos en formato Png. Hola a todos: Tengo en mi página web fotos en formato png y consigo verlas perfectamente con Internet explorer7. Pero con uno inferior al 7 no me muestra las transparencias. Me podeis ayudar y decirme qué puedo hacer. Gracias. |
| ||||
Re: Problemas con fotos en formato Png. Dentro de los tags <HEAD> ... </HEAD> ahi te lo paso completo. Código HTML: <!--[if gte IE 5.5000]> <script language="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 + "\');\"></span>" img.outerHTML = strNewHTML i = i-1 } } } window.attachEvent("onload", correctPNG); </script> <![endif]--> |
| |||
Re: Problemas con fotos en formato Png. hola otra vez me funciona perfectamente pero cuando añado este otro script no me realiza la acccion de cambiar una foto por otra al pasar el raton por encima. podrias ayudarme ? por que tu script es incompalibe con este: <SCRIPT LANGUAGE="Javascript"> <!-- - CAMBIO DE FOTO--> <!-- Swap images function Permut (flag,img) { if (document.images) { if (document.images[img].permloaded) { if (flag==1) document.images[img].src = document.images[img].perm.src else document.images[img].src = document.images[img].perm.oldsrc } } } function preloadPermut (img,adresse) { if (document.images) { img.onload = null; img.perm = new Image (); img.perm.oldsrc = img.src; img.perm.src = adresse; img.permloaded = true; } } // --> </SCRIPT> Un Saludo |
| ||||
Re: Problemas con fotos en formato Png. mmmm.....acá estoy medio al horno, porque no posteas este tema el Javascript seguramente ahi te puedan ayudar mucho más |
| |||
Re: Problemas con fotos en formato Png. Por cierto el script anterior lleva en el BODY ESTE COMANDO: <a href="servicios.html" onMouseover="Permut(1,'IMG1');" onMouseout="Permut(0,'IMG1');"> <IMG SRC="fotos/maquina.png" width="196" height="195" border=0 NAME="IMG1" onLoad="preloadPermut(this,'fotos/telefono2.gif');" BORDER=0 width="167" height="186" align="left"></A> los dos script funciona correctamente por separado. |
| |||
Re: Problemas con fotos en formato Png. Intenta con esto: Pones esto dentro el <head>
Código:
Luego te haces un archivo .js q se llame pngfix.js y colocas esto:<!--[if lt IE 7.]> <script defer type="text/javascript" src="pngfix.js"></script> <![endif]-->
Código:
y listo! Magicamente todos los .png con transparencias q tengas se verán bien en IE..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 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 } } } Fuente: http://homepage.ntlworld.com/bobosola
__________________ Sin sombra no hay luz... |
| |||
Re: Problemas con fotos en formato Png. Hola Jose He probado tu solucción y me ocurre lo mismo, es decir funciona perfectamente el mostrar las fotos con transparencia pero me anula el script de cambio de foto. Que Hago? se te ocurre algo. Un saludo |
| |||
Re: Problemas con fotos en formato Png. Ok, te colocare lo q explican en esa pagina acerca de las imagenes cambiantes. Yo no lo he probado, pruebalo y nos cuentas como te va. Ten muy en cuenta todos los comentarios y la forma en q se debe hacer todo... Antes q todo ya no utilizaras el pngfix como include, ahora el codigo ira todo directamente en el head y sera este: <HEAD>
Código:
<!--INICIO DEL CORRECTOR PNG--> <!--[if lt IE 7]> <script type="text/javascript"> var arVersion = navigator.appVersion.split("MSIE") var version = parseFloat(arVersion[1]) function correctPNG() // correctly handle PNG transparency in Win IE 5.5 and 6. { 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 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 var imgAttribs = img.attributes; for (var j=0; j<imgAttribs.length; j++) { var imgAttrib = imgAttribs[j]; if (imgAttrib.nodeName == "align") { if (imgAttrib.nodeValue == "left") imgStyle = "float:left;" + imgStyle if (imgAttrib.nodeValue == "right") imgStyle = "float:right;" + imgStyle break } } var strNewHTML = "<span " + imgID + imgClass + imgTitle strNewHTML += " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";" strNewHTML += "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader" strNewHTML += "(src='" + img.src + "', sizingMethod='scale');\"" strNewHTML += " onmouseover=\"PNGswap('" + img.id + "');\" onmouseout=\"PNGswap('" + img.id +"');\"" strNewHTML += "></span>" img.outerHTML = strNewHTML i = i-1 } } } } window.attachEvent("onload", correctPNG); function PNGswap(myID) { var strOver = "_on" var strOff = "_off" var oSpan = document.getElementById(myID) var currentAlphaImg = oSpan.filters(0).src if (currentAlphaImg.indexOf(strOver) != -1) oSpan.filters(0).src = currentAlphaImg.replace(strOver,strOff) else oSpan.filters(0).src = currentAlphaImg.replace(strOff,strOver) } </script> <![endif]--> <!--FIN DEL CORRECTOR PNG-->
Código:
</HEAD><!--INICIO DE LA FUNCION DE CAMBIO DE IMAGEN--> <script language="JavaScript" type="text/javascript"> <!-- function imgSwap(oImg) { var strOver = "_on" // IMAGEN USADA CUANDO EL RATON ESTA ENCIMA var strOff = "_off" // IMAGEN NORMAL var strImg = oImg.src if (strImg.indexOf(strOver) != -1) oImg.src = strImg.replace(strOver,strOff) else oImg.src = strImg.replace(strOff,strOver) } //--> </script> <!--FIN DE LA FUNCION DE CAMBIO DE IMAGEN--> Ahora donde sea q vaya la imagen tendra estas caracteristicas:
Código:
El nombre logo no es necesario, podria ser cualquier nombre, lo q si es necesario según dicen ahi es q termine en "_off" para la primera y "_on" para la q cambia.<img id="img100" src="logo_off.png" width="100" height="100" alt="a PNG logo" onmouseover="imgSwap(this)" onmouseout="imgSwap(this)"/> <img id="img200" src="logo2_off.png" width="100" height="100" alt="another PNG logo" onmouseover="imgSwap(this)" onmouseout="imgSwap(this)"/> <img id="img(N)00" src="logo(N)_off.png" width="100" height="100" alt="another PNG logo" onmouseover="imgSwap(this)" onmouseout="imgSwap(this)"/> Bueno, espero te funcione, mas tarde q me desocupe un poco lo reviso y lo pruebo a ver como me fue... Suerte y cualquier cosa nos cuentas.. Un abrazo... Página original: http://homepage.ntlworld.com/bobosola/png_mouseover.htm
__________________ Sin sombra no hay luz... |