Der folgende Beitrag wurde am 20. 10. 2004, 12:30 Uhr von Franzi veröffentlicht.
Hallo...!!
Habe auf meiner Site zwei übernanderliegende Ebenen, die alle 10 Sek. abwechseln ein- bzw. ausgeblendet werden. Das funktionierte mit dem untenstehenden Script soweit schon mal prima. Allerdings möchte ich, das beim Start zufällig mit einer Ebene begonnen wird (also mal mit Layer3 und mal mit Layer4). Deshalb habe die Zeile 4 (Math.random) eingebaut. Jetzt blendet er fälschlicher Weise ab und zu beide Ebenen gleichzeitig d.h. übereinander ein.
Kann mir jemand sagen, wie es korrekt geht...?
<script>
function show(id, mode)
{
var id = Math.random() > .5 ? 'layer3' : 'layer4';
var obj = document.getElementById(id);
if(!obj) return;
obj.style.display = mode ? 'block' : 'none';
}
var id = 'layer3';
function start()
{
show(id, false); // alten Layer verstecken
id = id == 'layer3' ? 'layer4' : 'layer3';
show(id, true); // neuen Layer anzeigen
window.setTimeout('start()', 10000);
}
</script>
Der folgende Beitrag wurde am 20. 10. 2004, 12:57 Uhr von Martin G veröffentlicht.
Hi,
ich würd mal versuchen, die Zufallsrechnung in einer anderen Funktion auszuführen und diese dann einmal 'onLoad' oder halt wie erwünscht starten.
Gruß,
Martin
Der folgende Beitrag wurde am 20. 10. 2004, 13:00 Uhr von wahsaga veröffentlicht.
hi,
> Deshalb habe die Zeile 4 (Math.random) eingebaut.
die wird jetzt bei _jedem_ aufruf deiner funktion show() ausgeführt.
wenn sie richtig funktioniert, ist es jetzt also vollkommen witzlos, wenn du hier
> show(id, false); // alten Layer verstecken
> id = id == 'layer3' ? 'layer4' : 'layer3';
> show(id, true); // neuen Layer anzeigen
noch einen wert für id übergibst - er wird ja in der funktion immer wieder mit dem zufällig ausgewählten überschrieben.
gruß,
wahsaga
--
"Look, that's why there's rules, understand? So that you _think_ before you break 'em."
Der folgende Beitrag wurde am 20. 10. 2004, 13:07 Uhr von Frannzi veröffentlicht.
Soweit Danke für Deine Antwort. Sorry, vielleicht hab ich gerad einfach auch nur ein Brett vorm Kopf. Aber was muss ich an meinem Script nun konkret ändern, damit die Ebene, mit der das Script startet, per Zufall gewählt wird...
Der folgende Beitrag wurde am 20. 10. 2004, 13:28 Uhr von wahsaga veröffentlicht.
hi,
> Aber was muss ich an meinem Script nun konkret ändern, damit die Ebene, mit der das Script startet, per Zufall gewählt wird...
du musst vor allem dafür sorgen, dass diese zufällige auswahl nicht _jedes mal in_, sondern nur _ein mal vor_ dem ersten aufruf der funktion show() stattfindet.
so, wie du es derzeit hast, wird nämlich auch die ebene, die wieder versteckt werden soll, zufällig ausgewählt, und danach die anzuzeigende ebenfalls - und wenn das unglücklich auskommt, hast du nachher eben beide ebenen sichtbar.
gruß,
wahsaga
--
"Look, that's why there's rules, understand? So that you _think_ before you break 'em."
Der folgende Beitrag wurde am 20. 10. 2004, 13:44 Uhr von Struppi veröffentlicht.
> <script>
Hier fehlt type="text/javascript"
> function show(id, mode)
> {
> var id = Math.random() > .5 ? 'layer3' : 'layer4';
Du musst das in vorher einbauen.
> var obj = document.getElementById(id);
> if(!obj) return;
> obj.style.display = mode ? 'block' : 'none';
> }
> var id = 'layer3';
und zwar hier:
var id = Math.random() > .5 ? 'layer3' : 'layer4';
Dannn wird jedesmal beim start zufällig ein Layer ausgewählt.
Struppi.
--
http://javascript.jstruebig.de/
© 1998-2013 SELFHTMLImpressumSoftware: Classic Forum 3.4