Just nu i M3-nätverket
Gå till innehåll

Hjälp med expanderande lager i MSIE


adji

Rekommendera Poster

Hallå,

 

håller på att bygga ihop ett litet script i js för att expandera/minimera lager.

Funkar finfint i Firefox, Opera och Safari men Explorer ger felmeddelande.

 

Någon som hinner ögna igenom och se om ni ser något knas direkt?

Vore tacksam för allt, konkreta lösningar välkomnas men bara fingervisningar uppskattas lika mycket.

 

function visaLager(id,width,height,speed,opacityTar)
{

// fakey speed convert to ensure int value
var speeda = speed*1

// fetch layer
var el = document.getElementById(id);

// get current size of layer
var h_size1 = el.offsetHeight;
var v_size1 = el.offsetWidth;

// get size of screen
if (self.innerWidth)
{
	frameWidth = self.innerWidth;
	frameHeight = self.innerHeight;
}
else if (document.documentElement && document.documentElement.clientWidth)
{
	frameWidth = document.documentElement.clientWidth;
	frameHeight = document.documentElement.clientHeight;
}
else if (document.body)
{
	frameWidth = document.body.clientWidth;
	frameHeight = document.body.clientHeight;
}


var widthStepper = Math.round((width/100) *speeda);
var heightStepper = Math.round((height/100) *speeda);



// the loop the loop
if (h_size1 < width || v_size1 < height)
{
	//centers the layer
	var topPos = ((frameHeight/2) - (h_size1/2)) + window.pageYOffset; 
	var leftPos = ((frameWidth/2) - (v_size1/2)); 

	// ensures us that the layer doesnt cover the cats
	if(topPos< 200) { topPos = 210; }

	// and here we place the layer
	el.style.top = topPos + "px";
	el.style.left = leftPos + "px";

	if(h_size1 < height)
	{
		// updates the height of the layer
		el.style.height = (h_size1 + heightStepper) +"px";
	}
	if(v_size1 < width)
	{
		// updates the width of the layer
		el.style.width = (v_size1 + widthStepper) +"px";
	}


	//dont animate opacity in Explorer, just set it
	if(!navigator.appName.match("Microsoft"))
	{
		if(el.style.opacity < (opacityTar/100))
		{
			var opacity = ((el.style.opacity*10) + 1)/10
			el.style.opacity=opacity
		}
	}else{
		el.style.filter="alpha(opacity="+opacityTar+")";
	}

	// defines a timeout to get that sweet animated effect
	r = setTimeout("visaLager('" + id + "','" + width + "','" + height + "', '" + speed +"','" + opacityTar + "')", 1);

}else{
	// clear the timeout when target size is set
	clearTimeout(r)
}
}

 

Länk till kommentar
Dela på andra webbplatser

Invalid argument som oftast, felmeddelanden i MSIE tycker jag är lite knepiga, hänvisar ofta till rader som inte överensstämmer med koden.

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...