webForumDet fria alternativet

Vid lagerbyte ska text-färgen ändras i de andra lagrena....

JavaScript

3 svar · 151 visningar · startad av Harback

Medlem sedan juni 2001206 inlägg
Frågan#1

Hejsan.

Jag har ett problem och eftersom jag inte är så bra på JavaScript tänkte jag att nån kunde hjälpa mig.

Jag har ett antal lager som är döpta till Lager1, Lager2 osv. Dessa lager överlappar varandra lite och jag har gjort ett enkelt system där z-indexet ändras när man trycker på något lager.

Problemet: Jag vill att text-färgen i alla lager utan det lager som är överst byter färg till t.ex. vitt, är detta möjligt? Hur isåfall?

Det enda jag tänkte på var att kolla vad lagret heter och sen loopa igenom alla utan det lagret och ändra text-färgen så, men som sagt jag är inte kung på JavaScript.

Tacksam för svar!

------------------
MVH
Harback

[Redigerat av Harback den 08 sep 2001]

Medlem sedan juni 20004 308 inlägg
#2

Ett litet exempel kan se ut så här;

<script language="JavaScript">
layers = new Array('foo','fee','fii'); // Namnen på lagren
zin=10;
function activate(current){
	zin++;
	for(n=0;n<layers.length;n++){
		if(current == layers[n]){
			changeStyle(layers[n],'color','#ffffff');
			changeStyle(layers[n],'zIndex',zin);
		} else {
			changeStyle(layers[n],'color','#555555');
		}
	}
}
function changeStyle(Id,Property,Value){
	if (document.getElementById){
		eval('document.getElementById(Id).style.'+Property+'="'+Value+'"');
	} else if (document.all){
		eval('document.all[Id].style.'+Property+'="'+Value+'"');
	} else if (document.layers){
		eval('document.layers[Id].'+Property+'="'+Value+'"');
	}
}
</script>
<div id="foo" style="position:absolute;border:blue solid 1px;background-color:black;width:200px;height:200px;left:100px;top:100px;color:#555555;" onClick="activate('foo');">
Lager 1
</div>
<div id="fee" style="position:absolute;border:blue solid 1px;background-color:black;width:200px;height:200px;left:150px;top:150px;color:#555555;" onClick="activate('fee');">
Lager 2
</div>
<div id="fii" style="position:absolute;border:blue solid 1px;background-color:black;width:200px;height:200px;left:200px;top:200px;color:#555555;" onClick="activate('fii');">
Lager 3
</div>

------------------
/ J

Medlem sedan juni 2001206 inlägg
#3

Helt klart en smart lösning! Tackar!

En följdfråga, går det att göra så att textfärgen ändrar sig i tabeller också?

------------------
MVH
Harback

Medlem sedan juni 20004 308 inlägg
#4

I DOM-kompatibla läsare (Netscape 6) eller halvkompatibla (IE 5.5+) är det enkelt, du ger elemenetet ett ID och sedan ändrar du egenskaper för det på samma sätt som innan.

<table id="kokobello">
<tr><td>cykelpump</tr></td>
</table>

Ändra sedan värdet med;

if (document.getElementById){
document.getElementById('kokobello').style.color="blue";
}

(Red. stavfel)

------------------
/ J

[Redigerat av Jojoxx den 10 sep 2001]

258 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)