Zufallsbilder per JS einbinden
Kirill
- javascript
0 EKKi0 Gunnar Bittersmann0 JürgenB
Moin moin,
nachdem mir Selfhtml schon oftbei meinen bescheidenen HTML/CSS-Kentnissen weitergeholfen hat, habe ich nun ein Frage, zu der ich noch keine Hilfe finden konnte.
Es geht darum das ich auf einer Seite zufallsgeneriert Bilder erscheinen lassen will, nein, keine Angst, dass habe ich nach langem googeln selber per Java hingekriegt. Falls es hilfreich ist, dass sieht folgendermaßen aus:
<script language="JavaScript">
var imagenumber = 4 ;
var randomnumber = Math.random() ;
var rand1 = Math.round( (imagenumber-1) * randomnumber) + 1 ;
images = new Array
images[1] = "images/bild1.jpg"
images[2] = "images/bild2.jpg"
images[3] = "images/bild3.jpg"
images[4] = "images/bild4.jpg"
var image = images[rand1]
</script>
Funktioniert auch prima, nun hätte ich aber gerne zwei Änderungen:
Wie kann ich erreichen das auch mal kein Bild angezeigt wird?
Es soll nämlich nur ab und zu ein Bild angezeigt werden. Man könnte
einfach weiße Bilder einblenden, aber das ist wohl kaum die
eleganteste Lösung ;).
Die Bilder sollen nicht alle an der gleichen Stelle erscheinen.
Kann ich die einzelnen Bilder des Scipts irgendiwe (per CSS)
frei positionieren?
So, das wars. Vielen Dank schonmal.
Beste Grüße
Mahlzeit Kirill,
dass habe ich nach langem googeln selber per Java hingekriegt. Falls es hilfreich ist, dass sieht folgendermaßen aus:
<script language="JavaScript">
Für mich sieht das eher nach Javascript aus ... auch wenn <http://de.selfhtml.org/html/referenz/attribute.htm#script@title=das zwingend erforderliche "type"-Attribut> fehlt.
var imagenumber = 4 ;
var randomnumber = Math.random() ;
var rand1 = Math.round( (imagenumber-1) * randomnumber) + 1 ;
images = new Array
images[1] = "images/bild1.jpg"
images[2] = "images/bild2.jpg"
images[3] = "images/bild3.jpg"
images[4] = "images/bild4.jpg"
var image = images[rand1]
(Woher kommt eigentlich die immer häufiger um sich greifende Unsitte, Javascript-Anweisungen nicht mehr mit einem Semikolon abzuschließen?)
Warum so kompliziert? Wenn die Bilder so einfach benannt sind, hätte doch auch ein simples
var image = 'images/bild' + Math.round(3 * Math.random() + 1) + '.jpg';
gereicht.
Im Übrigen hast Du so mitnichten ein "zufallsgeneriertes Bild auf Deiner Seite erscheinen lassen" - Du hast schlicht und ergreifend einer (offenbar globalen) Variablen einen String zugewiesen.
Den Teil des Codes, in dem deutlich wird, wie das Bild eingebaut wird, hast Du verschwiegen ... warum auch immer.
MfG,
EKKi
@JürgenB: Super, vielen Dank, das werd ich gleich mal ausprobieren.
Danke auch für die vielen Fehlerhinweise, die sicher richtig sind, wie gesagt ich habe kein Ahnung von JS, werde aber nun versuchen die ganzen Fehler zu beseitigen und mich einzulesen.
Der Vollständigkeit halber, eingebunden hatte ich das Ganze so:
<script language="JavaScript">
document.write('<IMG SRC="' + image + '">')
</script>
Was hoffentlich nicht alles noch falscher macht ;D.
Grüße
Mahlzeit kirill,
Der Vollständigkeit halber, eingebunden hatte ich das Ganze so:
<script language="JavaScript">
document.write('<IMG SRC="' + image + '">')
</script>Was hoffentlich nicht alles noch falscher macht ;D.
Nicht wirklich ... es fehlt halt nur wieder <http://de.selfhtml.org/html/referenz/attribute.htm#script@title=das zwingend erforderliche "type"-Attribut>.
Außerdem würde ich Dir empfehlen, HTML-Elemente und Attribute immer klein zu schreiben.
MfG,
EKKi
@@Kirill:
nuqneH
var randomnumber = Math.random() ;
var rand1 = Math.round( (imagenumber-1) * randomnumber) + 1 ;
Wannimmer Math.round() im Zusammenhang mit Math.random() verwandt wird, ist es vermutlich falsch.
Gleichverteilte Zufallszahlen erzeugen
Qapla'
Hallo Kirill,
- Wie kann ich erreichen das auch mal kein Bild angezeigt wird?
Es soll nämlich nur ab und zu ein Bild angezeigt werden. Man könnte
einfach weiße Bilder einblenden, aber das ist wohl kaum die
eleganteste Lösung ;).
erzeuge eine Zufallszahl, die größer als die Anzahl der Bilder sein kann. Wenn sie größer ist, zeige kein Bild.
- Die Bilder sollen nicht alle an der gleichen Stelle erscheinen.
Kann ich die einzelnen Bilder des Scipts irgendiwe (per CSS)
frei positionieren?
Die CSS-Eigenschaften top und left können per Javascript verändert werden, siehe http://de.selfhtml.org/javascript/objekte/style.htm.
Gruß, Jürgen