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

[ERLEDIGT] Mehrere Zufallsbilder mit Link

sbroecking

Neues Mitglied
Hallo zusammen,
ich möchte gerne Zufallsbilder anzeigen und diese verlinken. Soweit so gut.
Mit einem Bild klappt das bisher ganz gut.

Ich würde aber gerne 4 Bilder nebeneinander zeigen, und im idealfall so, dass kein bild doppelt erscheint.

ich nutze derzeit folgenden code
Code:
<script language="JavaScript" type="text/javascript">
<!--
var image = new Array();
var link = new Array();
/** Hier die (Zufalls)-Bilder eintragen. **/
image[1] = 'bild1.jpg';
image[2] = 'bild2.jpg';
image[3] = 'bild3.jpg';
/** Hier die (Zufalls)-Links eintragen. **/
link[1] = '/beachflags';
link[2] = '/auto-fussmatten';
link[3] = '/kennzeichen';
/** Ab hier nichts mehr ändern! **/
var num = Math.random();
var ran = Math.floor((image.length - 1) * num) + 1;
document.write('<a href="' + link[ran] + '"><img src="' + image[ran] + '" border="0" /></a>');
//-->
</script>


Wenn ich jetzt folgende zeile einfach dupliziere werden auch 2 bilder gezeigt, aber eben beides mal das gleiche
Code:
document.write('<a href="' + link[ran] + '"><img src="' + image[ran] + '" border="0" /></a>');


Gibt es eine Möglichkeit, den Code so anzupassen, dass ich 4 Bilder anzeigen lassen kann?

Und ich weiß, im Beispiel sind nur 3 bilder hinterlegt, aber ich wollte jetzt keinen Code mit 100 Bildern kopieren ;)
 
Werbung:
Wenn du die Zeile einfach nur duplizierst, ändert sich doch link[ran] und image[ran] nicht
 
Werbung:
ran + 1 oder ran - 1 je nach aktuellem Wert

Wenn du aber jede Menge Bilder hast, würde ich das eher mit PHP lösen.
 
das mit php krieg ich irgendwie nicht hin, der code funktioniert und erfüllt seinen zweck :)
vielen dank :)

Code:
var num = Math.random();
var ran = Math.floor((image.length - 1) * num) + 1;
document.write('<a href="' + link[ran] + '"><img src="' + image[ran] + '" border="0" /></a>');
document.write('<a href="' + link[ran+1] + '"><img src="' + image[ran+1] + '" border="0" /></a>');
document.write('<a href="' + link[ran+2] + '"><img src="' + image[ran+2] + '" border="0" /></a>');
document.write('<a href="' + link[ran+3] + '"><img src="' + image[ran+3] + '" border="0" /></a>');
//-->

habe den unteren bereich jetzt so und aktuell 20 bilder, das funktioniert auch soweit, bis auf das ab und zu ein bild nicht angezeigt wird und der link als "undefinied" kommt....
 
Zuletzt bearbeitet von einem Moderator:
So einfach kannst du dir das nicht machen! Wenn der Zufallsgenerator ran den Wert 18 gibt, kannst du nicht einfach addieren, weil du sonst einen zu großen Index im Array hast.
 
Werbung:
okay, deshalb zeigt er ab und an keine bilder an, weil das letzte bild quasi an erster stelle steht und danach keins kommt....

wie kann ich das dann lösen? ich bin php mäßig nicht ganz fit und das mit dem script hier klappt ja soweit erstmal, bis auf das blöde mit dem addieren jetzt
 
das macht sinn. das heißt ich müsste aber mit einem if else arbeiten oder?

leider weiß ich nicht, wie ich da eine if else funktion reinbekomme
 
Zuletzt bearbeitet:
Werbung:
es gibt auch ansätze mit php, bei denen ich aber nicht weiter weiß.
im prinzip ist es mir ja egal, wie alt der code ist, wenn er funktioniert.
und er funktioniert ja soweit erstmal gut, nur das ich halt jetzt herausfinden muss, wie ich das mit dem if else dort unterbringe

ich bin auch nicht abgeneigt, wenn es andere lösungen gibt, die ich umsetzen kann ;)
 
Wenn ich mich im Netz auf die Suche nach was Bestimmten begeben muss, dann aber mit dezidierteren Suchbegriffen, die die Erfolgschancen steigern, "Treffer" im wahrsten Sinne des Wortes geliefert zu bekommen.

Das da oben ging definitiv an der Zielscheibe vorbei :D

Nur mal so als Anreiz, wie sich das Trefferbild hätte ausbauen lassen:
  1. javascript multiple random images
  2. javascript multiple random images without repeat
  3. ...
Auf jQuery bezogen:
  1. jQuery multiple random images
  2. jQuery multiple random images without repeat
  3. ...
 
Werbung:
habe jetzt mal nach multiple random gesucht, allerdings sind die ergebnisse alle lediglich für das anzeigen eines bildes und nach klick. Das hilft mir also leider nicht weiter.

wie gesagt, das script was ich da jetzt habe erfüllt bereits seinen zweck, bis auf die tatsache, dass ich dort noch ein "wenn random größer 18 ist minus statt plus gerechnet wird"

werde dann nochmal weiter suchen, danke bis hier
 
habe jetzt mal nach multiple random gesucht, allerdings sind die ergebnisse alle lediglich für das anzeigen eines bildes und nach klick. Das hilft mir also leider nicht weiter.
javascript multiple random images nennt mir erwartungsgemäß zu aller erst die Suchergebnisse, die sich mit der Vielzahl von Zufallsbildern beschäftigen - ansonsten könnte Google seinen Laden dicht machen.

Und wenn das Anklicken von Links, Buttons, ... Themenmittelpunkt ist, um Zufallsbilder zu laden, bedeutet das nicht, dass es nur auf diese Weise funktioniert - schließlich ist (on)click https://wiki.selfhtml.org/wiki/JavaScript/DOM/Event/click nicht der einzig verfügbare Event-Handler, um Script-Funktionen anzustoßen.

In deinem Fall wäre dann eben beim Seitenaufruf (on)load an der Reihe:

https://wiki.selfhtml.org/wiki/JavaScript/DOM/Event/load
https://wiki.selfhtml.org/wiki/Java...en_des_DOM#window.onload_vs._DOMContentLoaded

Zudem spricht meine Suchbegriffliste keine Garantie für Deinen individuellen direkten/unmittelbaren Erfolg aus, ist genau so wenig als verbindliche Empfehlung zu verstehen, sondern sollte Dir beispielhaft/symbolisch verdeutlichen, wie sich die Suche mit dezidierten/verfeinerten Begriffen erfolgreicher gestalten lässt, um so nah wie möglich ans Ziel zu kommen, und sich so wenig Nacharbeit wie möglich ins Pflichtenheft schreiben zu müssen.

Denn, was Du tatsächlich am Ende willst, und was Du hier eingangs gezeigt hast, liegt soweit auseinander..., wie Tag und Nacht :rolleyes:

Aber eben diesen tieferen Sinn zwischen den Zeilen meines letzten Beitrags, was ich damit transportieren wollte, scheinst Du offensichtlich überhaupt nicht verstanden zu haben, wenn man Deinen Ausführungen so folgt.
 
anscheinend nicht, allerdings suche ich ja auch nach einer lösung meines problems, da ich das selbst nicht hinbekomme, ansonsten hätte ich nicht gefragt ;)

ich bin in sachen javascript froh, das ich überhaupt was gefunden habe, was etwas funktioniert, da ich einfach nicht genug fachliche kompetenz habe.

leider gibt es hier aber auch keine hilfe, und ja ich weiß, ich verlange viel, wenn ich nach einer lösung suche...
 
Werbung:
ich bin in sachen javascript froh, das ich überhaupt was gefunden habe, was etwas funktioniert, da ich einfach nicht genug fachliche kompetenz habe.

Du wirst aber deutlich mehr Vorteile aus einem Forum ziehen können, wenn du Interesse daran zeigst, dir diese Kompetenz anzueignen, als nur auf übernahmefähigen Code zu spekulieren.

So erstellt man ein Array aus zufällig generierten Bildnamen, die am Ende eine Zahl von 1 bis 16 besitzen:
Code:
var arr = [], imgArr = [];

while (arr.length < 4) {
    var ran = Math.ceil(Math.random() * 16)
    if (arr.indexOf(ran) > -1) continue;
    arr[arr.length] = ran;
    imgArr[arr.length] = 'img_' + ran
}

console.log(imgArr);
 
Zurück
Oben