webForumDet fria alternativet

DHTML NS problem...

0 svar · 466 visningar · startad av BABBA

BABBAMedlem sedan feb. 2000280 inlägg
#1

Jag har problem med följande kod:

<script language="Javascript">

text = new Array("B","A","B","B","A"," ","N","I","S","S","E");
a = text.length - 1;

var ie = (document.all) ? true:false;
var ns = (document.layers) ? true:false;

function init()
{
// Initializing variables
html = "";
if(ie)
{
vis = 'hidden';
layer = "span";
}
if(ns)
{
vis = 'hide';
layer = "layer";
}
for(i=0; i<text.length; i++)
{
html += "<"+layer+" id=\"text["+i+"]\" style='position:absolute;top:200;left:0;visibility:"+vis+";' class=\"text\">" + text + "</" + layer + ">";
}
return html;
}

function texten()
{

max_y = 400;
letter_spacing = 20;
control = new Array();
layer = String("text\["+a+"\]");
for(i=0; i\<text.length; i++) control \= max_y - letter_spacing\*(text.length-i);		

if(ie)
{
	document.all\[layer\].style.visibility = 'visible';
	ypos = parseInt(document.all\[layer\].style.top);
	xpos = parseInt(document.all\[layer\].style.left);
}
if(ns)
{
	document.layers\[layer\].visibility = 'show';
	ypos = parseInt(document.layers\[layer\].top);
	xpos = parseInt(document.layers\[layer\].left);
}

if(xpos\<=control\[a\])
{
	if(ie) document.all\[layer\].style.left = xpos + 10;
	if(ns) document.layers\[layer\].left = xpos + 10;
	setTimeout("texten()",1);
}
else
{
	if(a\>0)
	{
		a--;
		setTimeout("texten()",1);
	}

}	

}

</script>

Problemen är att visibility inte funkar i NS, lagrerna positioneras ej och första bokstaven i den text jag skriver ut behandlas inte på något sätt.

Sriptet skickar in bokstäver från vänster till höger och börjar med sista bokstaven.

( Jag aktiverar det genom init() och document.write(html), kör sedan funktionen texten() )

Det funkar perfa i IE.

------------------
BABBA

http://www.babba.f2s.com

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)