Foros del Web » Programando para Internet » Javascript »

Problemas con opacidad en IE6

Estas en el tema de Problemas con opacidad en IE6 en el foro de Javascript en Foros del Web. Hola señores Prepare un script que aplica opacidad escalada. Funciona bien con todos los navegadores, incluso con IE8, pero en IE6 no hace nada excepto ...
  #1 (permalink)  
Antiguo 28/11/2009, 20:23
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 2 meses
Puntos: 7
Problemas con opacidad en IE6

Hola señores

Prepare un script que aplica opacidad escalada. Funciona bien con todos los navegadores, incluso con IE8, pero en IE6 no hace nada excepto cuando le toca el momento de aplicar el "style.display = 'none'".

Aqui una muestra que podran probar con IE6 y este el codigo que prepare:

Código HTML:
function transp (id,tr)
{
    var obj = document.getElementById(id).style;
    //
    obj.opacity = (tr / 100);
    obj.MozOpacity = (tr / 100);
    obj.KhtmlOpacity = (tr / 100);
    obj.filter = 'alpha(Opacity=' + tr + ')';
    obj.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + tr + ')';
}

function fadeFX (id,ini,trg,vel)
{
	var fx, ob = document.getElementById(id);
	//
	if (ini < 0) { ini = 0; } else if (ini > 100) { ini = 100; }
	if (trg < 0) { trg = 0; } else if (trg > 100) { trg = 100; }
	//
	if (ini < trg) { fIn(); } else { fOut(); };
	//
	function fIn ()
	{
		fx = setInterval (go,vel);
		ob.style.display = 'block';
		//
		function go ()
		{
			if (ini >= trg)
			{
				clearInterval (fx);
			} else
			{
				ini ++;
				transp (id,ini);
			}
		}
	}
	//
	function fOut ()
	{
		fx = setInterval (go,vel);
		//
		function go ()
		{
			if (ini <= trg)
			{
				clearInterval (fx);
				ob.display = 'none';
			} else
			{
				ini --;
				transp (id,ini);
			}
		}
	}
}
Me paso por la cabeza dejar las cosas asi y olvidarme de los visitantes con IE6, pero no seria correcto para proyectos de clientes. Alguna sugerencia sobre lo que puede estar mal ??.
__________________
JuniHH
- Mi blog
- Mi portafolio
  #2 (permalink)  
Antiguo 29/11/2009, 06:18
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: Problemas con opacidad en IE6

Te sugiero reemplaces estas líneas por las que pongo a continuación:
Código PHP:
obj.filter 'alpha(Opacity=' tr ')';
obj.filter 'progid:DXImageTransform.Microsoft.Alpha(opacity=' tr ')'
reemplazo sugerido:
Código PHP:
obj.filter 'alpha(opacity=' tr ')';
obj.zoom =
  #3 (permalink)  
Antiguo 29/11/2009, 07:43
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 2 meses
Puntos: 7
Respuesta: Problemas con opacidad en IE6

Muchisimas gracias @Panino5001, si me funciono bien con IE6 aunque no lo aplique del todo como sugeriste sino asi:

Código HTML:
function transp (id,tr)
{
	var obj = document.getElementById(id).style;
	//
	obj.opacity = (tr / 100);
	obj.MozOpacity = (tr / 100);
	obj.KhtmlOpacity = (tr / 100);
	obj.filter = 'progid:DXImageTransform.Microsoft.Alpha(opacity=' + tr + ')';
	obj.filter = 'alpha(opacity=' + tr + ')';
	obj.zoom = 1; 
}
Ahora, no conocia a "style.zoom" y pude ver al investigar un poco mas que es una propiedad exclusiva de Explorer. Tambien pude ver que no es para lograr el efecto de transparencia sino cambiar la escala de los elementos, de hecho, consegui una interesante animacion aplicando "obj.zoom = (tr / 100);" a la funcion anterior.

En resumen, para que sirve exactamente "style.zoom" ??, porque aun en la informacion de Microsoft dice que es precisamente para escala.

Gracias anticipadas por responder esta nueva pregunta y nuevamente gracias por responder la anterior, me sirvio de mucho.
__________________
JuniHH
- Mi blog
- Mi portafolio

Última edición por junihh; 29/11/2009 a las 09:07
  #4 (permalink)  
Antiguo 29/11/2009, 09:01
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 10 meses
Puntos: 834
Respuesta: Problemas con opacidad en IE6

En realidad, tal como señalaste, es una propiedad no estandar. Sirve para eso, pero también fuerza a explorer a corregir ciertos problemas, ya que pone a true otra propiedad no estandar inventada por explorer llamada hasLayout. Para más información te recomiendo esta lectura: http://armonia.spiral-static.org/?20...plorer-con-css
  #5 (permalink)  
Antiguo 29/11/2009, 10:04
Avatar de junihh  
Fecha de Ingreso: febrero-2004
Ubicación: República Dominicana
Mensajes: 997
Antigüedad: 20 años, 2 meses
Puntos: 7
Respuesta: Problemas con opacidad en IE6

@Panino5001: Te agradezco el link, la informacion me sirvio y en lo adelante tendre en cuenta a hasLayout cuando tenga problemas.

Muchas gracias por tu ayuda, lastima que no pueda estar tan agradecido con Explorer ya que por su culpa he pasado bastantes dificultades en muchas ocasiones, por eso termine creando a http://ceroe.info. Un placer.
__________________
JuniHH
- Mi blog
- Mi portafolio
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:53.