# Zufällige Auswahl aus vorgegebenen Farben



## Eiirp (27. Sep 2011)

Hallo,

ich hab schon länger im Internet gesucht und konnte einfach keine Lösung finden, die bei mir funktioniert.

Undzwar möchte ich, dass auf meiner Internet Seite DIVs mit bestimmten Klassen nach einem gewissen Zeitintervall die "border" und die Textfarbe ändern. Ich habs schon hinbekommen, dass sich nach einer gewissen Zeit die Farbe ändert, auch mit einer zufälligen Farbauswahl. Allerdings will ich nur ein paar Farben vorgeben, aus denen gewählt wird, was ich wie folgt gelöst habe:


```
<script type="text/javascript"> 
 
        $(document).ready(function(){ 
            
            var intervalId = setInterval(function() {
                
                int i = (int)(Math.random() * 4);
                
                if (i == 0)
                        var col = "#000000";
                              
                else if (i == 1)
                        var col = "#00c800";
                
                else if (i == 2)
                        var col = "#ff0000";
                              
                else
                        var col = "#0000ff";
                
                
             
                $(".description").stop().animate({ color: col, borderTopColor: col, borderLeftColor: col, borderRightColor: col, borderBottomColor: col}, 1000); 
                
            }, 2000);
            
            
            });
</script>
```

Es soll also durch Zufall eine Zahl zwischen 0 und 3 gewählt werden -> je nachdem ist durch die if Bedingungen die Variable "col" ein bestimmter Farbwert, der weiter unten die Farbe des DIVs bestimmt. Das ganze wird alle 2 Sekunden wiederholt.

So hab ichs mir gedacht, funktionieren tuts nur leide rnicht. Kann mir jemand helfen?

Vielen Dank!


----------



## Tomate_Salat (27. Sep 2011)

http://www.java-forum.org/fuer-verirrte-fragen-javascript/15912-falschen-forum.html


----------



## nillehammer (27. Sep 2011)

Das "$" sieht mir nach ProtoType aus. Hier im Forum gibt es schon kaum Leute, die sich mit JavaScript auskennen, bestimmt noch weniger mit ProtoType. Ich will Dich jetzt nicht verjagen, aber ich glaube Du findest schneller eine Antwort, wenn Du Dich an die richtige Maillist wendest. Infos findest Du hier: Prototype JavaScript framework: Discuss Prototype


----------



## XHelp (27. Sep 2011)

Eiirp hat gesagt.:


> So hab ichs mir gedacht, funktionieren tuts nur leide rnicht.


wie funktioniert es dann?


----------



## Evil-Devil (27. Sep 2011)

Abgesehen davon das bei 2 Sekunden Intervallen das ganzen zu ner Lightshow verkommt solltest du zunächst die Farben in einem Array definieren.

Ich würde das mal unabhängig von meinen jQuery Kenntnissen die bei 0 liegen wie folgt lösen. Hab es nicht überprüft, aber der Weg sollte das Ziel sein.


```
var colors = ['#000000', '#00C800', '#FF0000', '#0000FF'];

$(document).ready(function() { 
	var description = $(".description"); // unnötige DOM suche vermeiden indem das element vorgehalten wird.
	
	var intervalFnc = setInterval(function() {
		int i= Math.ceil(Math.random() * colors.length);
		
		var col = colors[colors.length - 1];	// letzte farbe als default
		
		if (i >= 0 && i <= colors.length) {
			col = colors[i];
		}
		
		description.style.borderColor = col;
		
	}, 2000);
}
```

Ich vermute mal die $(".description") Funktion von jQuery liefert ein Array zurück, entsprechend müsste die letzte CSS Anweisung auch über ein Foreach bzw. eine For SChleife gelöst werden.


----------

