WCM - Das österreichische Computer Magazin Forenübersicht
 

Zurück   WCM Forum > Rat & Tat > Programmierung

Programmierung Rat & Tat für Programmierer

Microsoft KARRIERECAMPUS

Antwort
 
Themen-Optionen Ansicht
Alt 24.06.2002, 14:18   #1
Sesa_Mina
Schwarzfußfrettchen
 
Registriert seit: 28.01.2001
Beiträge: 2.071


Standard layer positionen vertauschen...

Hab ne website mit layern die p0, p1, p2, ... p19 heißen.

Diese sind absolut positioniert.

Ich will jetzt mit Javascript ebendiese Layer dazu bringen, zufällig die Positionen zu tauschen.

d.h. alle 3-5 Sekunden tauschen 2 der layer ihre plätze.

bin schon am verzweifeln weil das zeug so wie ichs hab ned funktionieren will.

wer kann hälfähn?
____________________________________
Wann die kan Almdudler ham... \"Es gibt nur einen Weg zur Lunge, und der muss geteert werden, damit der Krebs nicht stolpert!\"
http://www.dream.at/gizmo/bunny.gif
Image is © 2001 Merle
Sterndalsäg.. ähh... jäger
Sesa_Mina ist offline   Mit Zitat antworten
Alt 24.06.2002, 14:43   #2
sagi
Elite
 
Registriert seit: 08.11.2001
Alter: 42
Beiträge: 1.285


Standard

Post mal den Quelltext, den du bis jetzt schon hast.

mfg

c.
____________________________________
www.sagmueller.net

Freedom - use it or lose it (Lawrence Lessig)

Im übrigen bin ich der Meinung, dass Microsoft zerschlagen werden muss.
sagi ist offline   Mit Zitat antworten
Alt 24.06.2002, 16:19   #3
Sesa_Mina
Schwarzfußfrettchen
 
Registriert seit: 28.01.2001
Beiträge: 2.071


Standard

folgender code wird bei OnLoad im Body tag aufgerufen.
Er setzt die Positionen der layer bzw. div tags. (direkt im style tag definieren funktioniert zwar auch, kann aber dann nicht ausgelesen werden. darum so umständlich.)
Code:
document.all.p0.style.setAttribute("top","2","false");
document.all.p0.style.setAttribute("left","2","false");
...
document.all.p19.style.setAttribute("top","490","false");
document.all.p19.style.setAttribute("left","488","false");

layerRef ist nur ein string der 'document.all' enthält.
Code:
function MSwapIt() {
	a = Math.round(Math.random() * 19);
	b = Math.round(Math.random() * 19);

	ax = eval(layerRef + '["p'+a+'"].style.getAttribute("left","false")');
	ay = eval(layerRef + '["p'+a+'"].style.getAttribute("top","false")');
	bx = eval(layerRef + '["p'+b+'"].style.getAttribute("left","false")');
	by = eval(layerRef + '["p'+b+'"].style.getAttribute("top","false")');

	eval(layerRef + '["p'+a+'"].style.setAttribute("left",bx,"false")');
	eval(layerRef + '["p'+a+'"].style.setAttribute("top",by,"false")');
	eval(layerRef + '["p'+b+'"].style.setAttribute("left",ax,"false")');
	eval(layerRef + '["p'+b+'"].style.setAttribute("top",ay,"false")');

	window.setTimeout("MSwapIt()",1000);
}
Der code funktioniert ganz gut (Ja, habs doch noch hinbekommen), hat aber den Nachteil das Netscape damit nix anfangen kann.
____________________________________
Wann die kan Almdudler ham... \"Es gibt nur einen Weg zur Lunge, und der muss geteert werden, damit der Krebs nicht stolpert!\"
http://www.dream.at/gizmo/bunny.gif
Image is © 2001 Merle
Sterndalsäg.. ähh... jäger
Sesa_Mina ist offline   Mit Zitat antworten
Alt 26.06.2002, 16:09   #4
sagi
Elite
 
Registriert seit: 08.11.2001
Alter: 42
Beiträge: 1.285


Standard

Zitat:
layerRef ist nur ein string der 'document.all' enthält.
solte der nich "document.all." enthalten ("." am Ende)??

mfg

c.
____________________________________
www.sagmueller.net

Freedom - use it or lose it (Lawrence Lessig)

Im übrigen bin ich der Meinung, dass Microsoft zerschlagen werden muss.
sagi ist offline   Mit Zitat antworten
Alt 26.06.2002, 16:15   #5
sagi
Elite
 
Registriert seit: 08.11.2001
Alter: 42
Beiträge: 1.285


Idee ich habs!

setAttribute und getAttribute werden nur vom IE unterstützt.

probier mal:

document.getElementsByTagName("p")[i].style.left = ???;

Sollte mit NS 6.x und IE 5.x funktionieren.

näheres erfährst du bei selfhtml.teamone.de (hoffe der Link stimmt) Da sind alle Objekte, die mit style verwendet werden können aufgelistet.

mfg

c.
____________________________________
www.sagmueller.net

Freedom - use it or lose it (Lawrence Lessig)

Im übrigen bin ich der Meinung, dass Microsoft zerschlagen werden muss.
sagi ist offline   Mit Zitat antworten
Alt 26.06.2002, 16:53   #6
käptn
Inventar
 
Registriert seit: 04.11.2001
Alter: 45
Beiträge: 2.150


Standard

jedenfalls ghört ins eval-statement noch ein >>;<<

und...

ich hab zwar noch nie mit document.all gearbeitet aber sollte das net so ausschaun:

document.all['irgendwas'].irgendwas ?
käptn ist offline   Mit Zitat antworten
Alt 26.06.2002, 17:09   #7
sagi
Elite
 
Registriert seit: 08.11.2001
Alter: 42
Beiträge: 1.285


Standard

Zitat:
sollte das net so ausschaun:

document.all['irgendwas'].irgendwas ?
Stimmt eigentlich. Aber das ist da eher flexibel. Mich haben nur die Anführungszeichen im geposteten Quelltext etwas irritiert.

Zitat:
document.getElementsByTagName("p")[i].style.left = ???;
Das hab ich aus einen Beispeil kopiert. Die Variablen beziehen sich natürlich nicht auf deine Variablen.

aber schaus dir halt bei dem von mir geposteten Link genauer an.

mfg

c.
____________________________________
www.sagmueller.net

Freedom - use it or lose it (Lawrence Lessig)

Im übrigen bin ich der Meinung, dass Microsoft zerschlagen werden muss.
sagi ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 01:31 Uhr.


Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Forum SEO by Zoints
© 2009 FSL Verlag