• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Javascript Variable speichern

jumbo125

Mitglied
Sehr geehrte User, seit gestern versuche ich den Eintrag eines Arrays schrittweise auszugeben. Und zwar soll bei jedem Funktionsaufruf ein array-teil ausgegeben werden.
Lasse ich die schlaufe durchlaufen, und in eine Varibale übergeben und diese ausgeben, würde bereits beim ersten Funktionsaufruf, das gesamte Array in dieser Variable ausgeben.
Daher gebe ich das Array in eine dynamische Variable aus:

der Code sieht so aus:
Code:
<script language="javascript"> 
 
function Bildwechsel(){
jsarray = new Array();
jsarray.splice(0, 0, "bye");
jsarray.splice(0, 0, "hy"); 
jsarray.splice(0, 0, "hallo");




var zahl = jsarray.length; //bestimmt die Arrayanzahl 


 
for(var mincounter = 0; mincounter < zahl; mincounter++) { 
 alert ("zahl: " + mincounter); 
eval("Bild" + mincounter + " = jsarray[mincounter]");      //gibt 
}


alert(Bild0); //nur zum testen
}
  


</script>
das script wird mit <a href="javascript:Bildwechsel()..... ausgeführt.


Später würde ich das jeweilige Bild ausgeben:
Code:
var count = 0;
var fertigevarible = "Bild" + count;
count +1;

Das hat auch alles schon funktioniert, ABER führe ich die Funktion das ERSTE mal aus, erscheint der erste Array-eintrag -> stimmt ja auch.

Führe ich es ein ZWEITES mal aus, habe ich trotzdem den ersten Array-Eintrag, DA DIE variable "count" nicht den "neuen" Wert speichert, sondern immer wieder 0 ist. und am schluss der Funktion 1(was mir eigentlich nichts bringt, wenn dieser 1 nicht gespeichert wird).


Ziel wäre es daher, dieses count +1, so zu schreiben, das count MIT JEDEN Funktionsaufruf mit 1 addiert wird.

Hat jemand eine Idee.
 
Zuletzt bearbeitet:
Du musst die Zählvariable außerhalb deiner Funktion definieren. (Könnte weitere Änderungen in deinem Code zur Folge haben.)
 
Wie Bodil schon erwähnte, die Variable muss außerhalb stehen, ansonsten wird sie immer wieder auf 0 gesetzt.

Code:
	myArray = ['bild_1', 'bild_2', 'bild_3', 'bild_4', 'bild_5'];
	i = 0;

	function bildWechsel()
	{
		alert(myArray[i]);
		i++;
		if (i == myArray.length) {
			i = 0;
		}
		setTimeout('bildWechsel()', 2000);
	}

	bildWechsel();
 
Wie Bodil schon erwähnte, die Variable muss außerhalb stehen, ansonsten wird sie immer wieder auf 0 gesetzt.

Code:
    myArray = ['bild_1', 'bild_2', 'bild_3', 'bild_4', 'bild_5'];
    i = 0;

    function bildWechsel()
    {
        alert(myArray[i]);
        i++;
        if (i == myArray.length) {
            i = 0;
        }
        setTimeout('bildWechsel()', 2000);
    }

    bildWechsel();

Hab leider erst jetzt wieder nachgeshen. Hab jedoch den Code mit MÜHE(gerade noch) zusammen gebracht. Danke an euch. Wisst ihr zufällig auch, wie man eine css animation mittels js stoppen kann?
ich habe dazu diesen Code gefunden: object.style.animationPlayState="paused"

Code:
[/I]#Bild{padding-left: 200px;
padding-top: 30px;
max-width: 633px;
max-height: 350px;
     -webkit-animation-name: bildanimated;
    -webkit-animation-duration: 2s;
    -webkit-animation-iteration-count: infinite;
    -webkit-animation-timing-function: linear;
    -moz-animation-name: bildanimated;
    -moz-animation-duration: 2s;
    -moz-animation-iteration-count: infinite;
    -moz-animation-timing-function: linear;








animation-play-state:running;
-moz-animation-play-state:running; /* Firefox*/
-webkit-animation-play-state:running; /* Safari and Chrome */
-o-animation-play-state:running; /* Opera */



}
@-webkit-keyframes  bildanimated{


     0% {
        opacity:0;
  }
  
    100% {     
         opacity:1;
    }  
}

//javascript:

 function stopp(){
    document.getElementByID("Bild").style.animationPlayState="paused";
    }
    </script>

[I]

Danke nochmals

 
hat sich erledigt. Habs anderswärtig gemacht. Eine vollständige Bildervorschau, mit verblassen, aber OHNE jquery.... Nur eine php schleife, 4 zeilen Javascript und eine css animation. CSS ist schon einsame Spitze.
 
Zuletzt bearbeitet:
Klar gibt es da auch alternative Möglichkeiten mit jQuery oder CSS. So eine Bilderschau in vanilla JS erstellt man höchstens zu Lernzwecken.

Um eine Pause in Javascript zu realisieren, müsste setTimeout() in einer Variablen gespeichert und diese als Funktionsparameter an clearTimeout() übergeben werden. Das stoppen und neustarten könnte dann über onmouseover() und onmouseout() passieren.
 
Zurück
Oben