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

Position festlegen von Array

mr_xxl

Neues Mitglied
Hallo alle zusammen,
ich wollte eine Bildergalerie machen, dabei habe ich folgender Code gefunden:
Code:
<script type="text/javascript">

var ultimateshow=new Array()

ultimateshow[0]=['dinosour.gif', '', '']
ultimateshow[1]=['crow.gif', '', '']
ultimateshow[2]=['pig.gif', '', '']

//configure the below 3 variables to set the dimension/background color of the slideshow

var slidewidth="300px" //set to width of LARGEST image in your slideshow
var slideheight="261px" //set to height of LARGEST iamge in your slideshow
var slidecycles="3" //number of cycles before slideshow stops (ie: "2" or "continous")
var randomorder="no" //randomize the order in which images are displayed? "yes" or "no"
var preloadimages="yes" //preload images? "yes" or "no"
var slidebgcolor='white'

var slidedelay=3000

var ie=document.all
var dom=document.getElementById
var curcycle=0

if (preloadimages=="yes"){
for (i=0;i<ultimateshow.length;i++){
var cacheimage=new Image()
cacheimage.src=ultimateshow[i][0]
}
}

var currentslide=0

function randomize(targetarray){
ultimateshowCopy=new Array()
var the_one
var z=0
while (z<targetarray.length){
the_one=Math.floor(Math.random()*targetarray.length)
if (targetarray[the_one]!="_selected!"){
ultimateshowCopy[z]=targetarray[the_one]
targetarray[the_one]="_selected!"
z++
}
}
}

if (randomorder=="yes")
randomize(ultimateshow)
else
ultimateshowCopy=ultimateshow

function rotateimages(){
curcycle=(currentslide==0)? curcycle+1 : curcycle
ultcontainer='<center>'
if (ultimateshowCopy[currentslide][1]!="")
ultcontainer+='<a href="'+ultimateshowCopy[currentslide][1]+'" target="'+ultimateshowCopy[currentslide][2]+'">'
ultcontainer+='<img src="'+ultimateshowCopy[currentslide][0]+'" border="0">'
if (ultimateshowCopy[currentslide][1]!="")
ultcontainer+='</a>'
ultcontainer+='</center>'
if (ie||dom)
crossrotateobj.innerHTML=ultcontainer
if (currentslide==ultimateshow.length-1) currentslide=0
else currentslide++
if (curcycle==parseInt(slidecycles) && currentslide==0)
return
setTimeout("rotateimages()",slidedelay)
}

if (ie||dom)
document.write('<div id="slidedom" style="width:'+slidewidth+';height:'+slideheight+'; background-color:'+slidebgcolor+'"></div>')

function start_slider(){
crossrotateobj=dom? document.getElementById("slidedom") : document.all.slidedom
rotateimages()
}

if (ie||dom)
window.onload=start_slider

</script>

Nun will ich noch ein oder zwei Bilder daneben haben, die sich auch ändern. Kann mir vielleicht jemand sagen, wo wie man die Position von Array festlegen kann? Danke im Voraus!
 
D.h. Du willst dieses Script doppelt oder dreifach in einer Datei verwenden? Das geht mit diesem Script nicht, da es eineindeutige Kennzeichen wie die ID "slidedom" enthält, welche nur 1 Mal pro HTML-Dokument vorkommen darf. Auch die JavaScript-Variablen kannst Du nicht mehrfach verwenden.

Wieso muss es dieser Code sein? Er ist nicht gerade sehr modern und unflexibel. Es gibt viele Alternativen, z.B. über die jQuery-JavaScript-Bibliothek.
 
muss es nicht, der code erfüllt das was ich will, aber nur einmal :sad:. ich wollte drei oder vier arrays nebeneinander machen und eventuel noch die Überschrifte dadrunter, so das für jedes Foto passende Überschrift zusehen ist. Können Sie mir vielleicht sagen wo ich ein paar Beispiele finden kann?
 
wenn ich z.B. folgender Code habe

Code:
<div style='text-align: center;'><img id='1' src='#'></div>

<div style='text-align: center;'><img id='2' src='#'></div>

<script type='text/javascript'>
var i = 0;
var bild = new Array();
bild[0]='';
bild[1]='';
bild[2]='';
bild[3]='';
bild[4]='';
bild[5]='';


var bild1 = new Array();
bild1[0]='';
bild1[1]='';
bild1[2]='';
bild1[3]='';
bild1[4]='';
bild1[5]='';



function anzeigen() {
 if (i < bild.length) {
  document.getElementById('1').src=bild[i];
  i++;
 }
 else {
  i = 0;
 }

if (i < bild1.length) {
  document.getElementById('2').src=bild1[i];
  i++;
 }
 else {
  i = 0;
 }
  setTimeout('anzeigen()', 3000);
}
anzeigen();
</script>
was muss ich verändern damit die arrays nebeneinander angezeigt werden (in einer Zeile)? Warum werden die Bilder nicht synchron geändert gilt setTimeout('anzeigen()', 3000); nicht für jedes Array? wenn ich für jedes Bild im Array pasende Überschrift (Untertittel) anzeigen will, muss ich da 2-dim. Array machen?
 
warum wird die verlinkung des array 1 auch im array 2 ausgeführt?
Code:
<div style='text-align: center;float:left;margin: 10px 40px 30px 50;'> <a href="javascript:link()"><img id='1' src='#'></div>

<div style='text-align: center;float: left;'><img id='2' src='#'></div>

<script type='text/javascript'>
var i = 0;
var bild = new Array();
bild[0]='';
bild[1]='';
bild[2]='';
bild[3]='';
bild[4]='';
bild[5]='';


var bild1 = new Array();
bild1[0]='';
bild1[1]='';
bild1[2]='';
bild1[3]='';
bild1[4]='';
bild1[5]='';



function anzeigen() {
whichimage=i;
 if (i < bild.length) {
  document.getElementById('1').src=bild[i];
  i++;
 }
 else {
  i = 0;
 }

if (i < bild1.length) {
  document.getElementById('2').src=bild1[i];
  i++;
 }
 else {
  i = 0;
 }
  setTimeout('anzeigen()', 3000);
}

function link(){
if (whichimage==0)
window.location=""
else if (whichimage==1)
window.location=""
else if (whichimage==2)
window.location=""
else if (whichimage==3)
window.location=""
else if (whichimage==4)
window.location=""
else if (whichimage==5)
window.location=""
}
anzeigen();
</script>

wie kann man noch den Untertitel anzeigen lassen?
 
Zurück
Oben