Kann Bildershow nicht stoppen
Carnygel
- javascript
0 XaraX0 Gunnar Bittersmann0 MaFu
Hallo,
habe eine Bildershow zusammengestellt. Auf der Seite gibt es eine Start- und Stopp-Funktion. Mit Start läuft die Show automatisch an. Das haut hin. Aber Stopp klappt nicht. Kann mir vielleicht jemand sagen, wo ich den Fehler gemacht habe? Danke!
Hier der Quellcode:
<body bgcolor="#cfffff" >
<script language="JavaScript1.2">
<!--
function reapply(){
setTimeout("slideit()",2000)
return true
}
window.onerror=reapply
// einbinden der Grafiken
var image1=new Image()
image1.src="bilder/galerie-01/donaubaden-06.jpg"
var image2=new Image()
image2.src="bilder/galerie-01/donaubaden-08.jpg"
var image3=new Image()
image3.src="bilder/galerie-01/donaubaden-09.jpg"
var image4=new Image()
image4.src="bilder/galerie-01/donaubaden-10.jpg"
var image5=new Image()
image5.src="bilder/galerie-01/donaubaden-11.jpg"
var image6=new Image()
image6.src="bilder/galerie-01/donaubaden-13.jpg"
var image7=new Image()
image7.src="bilder/galerie-01/donaubaden-20.jpg"
var image8=new Image()
image8.src="bilder/galerie-01/donaubaden-14.jpg"
// -->
</script>
<script>
<!--
var number_of_images=8 // Anzahl der Grafiken
var speed=4 // Geschwindigkeit des Filterübergang
var step=1 // Schrittanzahl
var image=1 // Start der ersten Grafik
function slideit() {
if (!document.images)
return
if (document.all)
slide.filters.blendTrans.apply()
document.images.slide.src=eval("image"+step+".src")
if (document.all)
slide.filters.blendTrans.play()
whichimage=step
if (step<number_of_images)
step++
else
step=1
if (document.all)
setTimeout("slideit()",speed*1000)
else
setTimeout("slideit()",speed*1000)
}
function exit() {
stop=true;
}
// -->
</script>
<table valign="middle" align="center" class="textnormal" bgcolor="#000099">
<tr><td width="350"><hr size="4"></td></tr>
<tr><td align="center" width="350"bgcolor="#cfffff">
<big><b><font color="#000099">Automatische Bildershow:
<br>"Arbeiten und baden an der Donau"</font></b></big>
</td></tr>
<tr><td width="350"><hr size="4"></td></tr>
<tr><td align="center" width="350">
</td></tr>
<tr><td align="center" valign="top" height="270">
<a href="javascript:slidelink()"
onMouseover="window.status='Jedes Bild hat eine eigene URL';return true"
onMouseout="window.status=''">
<img src="bilder/galerie-01/donaubaden-14.jpg" name="slide" border="0" valign="middle" align="center" style="filter:blendTrans(duration=3)"></a>
</td></tr>
<tr><td>
<form>
<input type=button value="Start" onClick="slideit()"><br>
<input type=button value="Stop" onClick="exit()"><br>
</form>
</td></tr>
</table>
</body>
Hallo Carnygel,
<[Element] onClick="stop()">Stop</[Element]><[Element] onClick="start()">Start</[Element]>
für
var stop='';
function slideit()
{
// [...]
if(stop!='stop') setTimeout("slideit()",speed*1000);
}
function stop()
{
var stop='stop';
}
function start()
{
var stop='';
slideit();
}
Gruß aus Berlin!
eddi
Danke eddi,
habe var... am Schluss von <script> eingefügt. Jetzt funktioniert aber auch der Start nicht mehr.
Gruß Carnygel
»» <[Element] onClick="stop()">Stop</[Element]><[Element] onClick="start()">Start</[Element]>
für
var stop='';
function slideit()
{
// [...]
if(stop!='stop') setTimeout("slideit()",speed*1000);
}
function stop()
{
var stop='stop';
}
function start()
{
var stop='';
slideit();
}Gruß aus Berlin!
eddi
Re:
habe var... am Schluss von <script> eingefügt. Jetzt funktioniert aber auch der Start nicht mehr.
Dann sind dort vermutlich noch andere Fehler drin.
Gruß aus Berlin!
eddi
Habe den Fehler schon gefunden, Danke!
<script language="JavaScript1.2">
<script>
Das language-Attribut darfst du weglassen; das type-Attribut nicht. Muss also <script type="text/javascript"> heißen.
function reapply(){
setTimeout("slideit()",2000)
return true
}
Musste glatt selber nachschauen, ob es erlaubt ist, das ; nach einer Anwesung wegzulassen. Laut http://de.selfhtml.org/javascript/sprache/regeln.htm#anweisungen ist es das; empfehlen würde ich es aber nicht.
if (step<number_of_images)
step++
else
step=1
Das lässt sich mit einer for-Schleife eleganter ausdrücken.
if (document.all)
setTimeout("slideit()",speed*1000)
else
setTimeout("slideit()",speed*1000)
Welchen Sinn macht das, wenn im if- und im else-Zweig dasselbe steht?
function exit() {
stop=true;
}
Und hier zu deinem Problem: Wo wird stop abgefragt?
Gunnar
hi
Das language-Attribut darfst du weglassen; das type-Attribut nicht. Muss also <script type="text/javascript"> heißen.
nicht nur darf, sondern muss. Und außerdem ist 1.2 sicher nicht mehr up-to-date.
Gruß Kai
Das language-Attribut darfst du weglassen;
nicht nur darf, sondern muss.
Kai,
In der Transitional-Variante ist das language-Attribut erlaubt.
Gunnar
Das hätte ich ja gern aus diesem Kreis erfahren! Ich habe einen Stopp-Button und möchte, dass dieser den Vorgang slideit stoppen.
Komme aber nicht dahinter, wo ich welche Ergänzungen vornehmen muss bzw. welche ich zuviel drinnen habe. Bin noch nicht so fit!
function exit() {
stop=true;
}Und hier zu deinem Problem: Wo wird stop abgefragt?
Gunnar
versuch mal anstelle von [<input type=button value="Stop" onClick="exit()">]
<input type="button" value="Stop" onClick="stop()">