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

Hjälp med expanderande lager i MSIE

Rekommendera Poster

adji

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)
}
}

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
DanielForPresident

Vad får du för felmeddelande?

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
adji

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

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...