Težava javascript

Rad bi naredil tri različne prostore, kjer se vrtijo naključne slike iz iste mape. Slike normalno pobere iz mape a vrtijo se samo v tretjem zadnjem prostoru.

Kakšna ideja kaj bi bilo lahko narobe?

Hvala.

<div id="slike">
    <div id="slika1">
        <script language="javascript">
        var delay=1000 //set delay in miliseconds
        var curindex=0

        var randomimages=new Array()

            randomimages[0]="slide/1.jpg"
            randomimages[1]="slide/2.jpg"
            randomimages[2]="slide/3.jpg"
            randomimages[3]="slide/4.jpg"
            randomimages[4]="slide/5.jpg"
            randomimages[5]="slide/6.jpg"

        var preload=new Array()

        for (n=0;n<randomimages.length;n++)
        {
            preload[n]=new Image()
            preload[n].src=randomimages[n]
        }

        document.write('<img name="defaultimage" src="'+randomimages[Math.floor(Math.random()*(randomimages.length))]+'">')

        function rotateimage()
        {

        if (curindex==(tempindex=Math.floor(Math.random()*(randomimages.length)))){
        curindex=curindex==0? 1 : curindex-1
        }
        else
        curindex=tempindex

        document.images.defaultimage.src=randomimages[curindex]
        }

        setInterval("rotateimage()",delay)
        </script>
    </div>
    <div id="slika2">
        <script language="javascript">
        var delay=1000 //set delay in miliseconds
        var curindex=0

        var randomimages=new Array()

            randomimages[0]="slide/1.jpg"
            randomimages[1]="slide/2.jpg"
            randomimages[2]="slide/3.jpg"
            randomimages[3]="slide/4.jpg"
            randomimages[4]="slide/5.jpg"
            randomimages[5]="slide/6.jpg"

        var preload=new Array()

        for (n=0;n<randomimages.length;n++)
        {
            preload[n]=new Image()
            preload[n].src=randomimages[n]
        }

        document.write('<img name="defaultimage" src="'+randomimages[Math.floor(Math.random()*(randomimages.length))]+'">')

        function rotateimage()
        {

        if (curindex==(tempindex=Math.floor(Math.random()*(randomimages.length)))){
        curindex=curindex==0? 1 : curindex-1
        }
        else
        curindex=tempindex

        document.images.defaultimage.src=randomimages[curindex]
        }

        setInterval("rotateimage()",delay)
        </script>
    </div>
    <div id="slika3">
        <script language="javascript">
        var delay=1000 //set delay in miliseconds
        var curindex=0

        var randomimages=new Array()

            randomimages[0]="slide/1.jpg"
            randomimages[1]="slide/2.jpg"
            randomimages[2]="slide/3.jpg"
            randomimages[3]="slide/4.jpg"
            randomimages[4]="slide/5.jpg"
            randomimages[5]="slide/6.jpg"

        var preload=new Array()

        for (n=0;n<randomimages.length;n++)
        {
            preload[n]=new Image()
            preload[n].src=randomimages[n]
        }

        document.write('<img name="defaultimage" src="'+randomimages[Math.floor(Math.random()*(randomimages.length))]+'">')

        function rotateimage()
        {

        if (curindex==(tempindex=Math.floor(Math.random()*(randomimages.length)))){
        curindex=curindex==0? 1 : curindex-1
        }
        else
        curindex=tempindex

        document.images.defaultimage.src=randomimages[curindex]
        }

        setInterval("rotateimage()",delay)
        </script>
    </div>
</div>

3 odgovori

Prepisuješ vse kar se prepisati da ... v prvem polju začneš, v drugem prepišeš prvo, v tretjem pa drugega in vse skupaj dela samo v tretjem.

1

Kot je carli rekel. Vse se samo prepisuje.

Spodaj sem na hitro vse spremenljivke, funkcije ... poimenoval z dodatnim ZZZ na koncu. za druge slike samo uporabi druge črke (da nastane na primer curindexYYY). Vse se mora razlikovati. Načeloma bi moralo delovati, bi se pa dalo zoptimizirati, da ne bi bilo toliko podvajanja.

<script language="javascript">
var delay=1000 //set delay in miliseconds
var curindexZZZ=0

var randomimagesZZZ=new Array()

randomimagesZZZ[0]="slide/1.jpg"
randomimagesZZZ[1]="slide/2.jpg"
randomimagesZZZ[2]="slide/3.jpg"
randomimagesZZZ[3]="slide/4.jpg"
randomimagesZZZ[4]="slide/5.jpg"
randomimagesZZZ[5]="slide/6.jpg"

var preloadZZZ=new Array()

for (n=0;n<randomimagesZZZ.length;n++)
{
preloadZZZ[n]=new Image()
preloadZZZ[n].src=randomimagesZZZ[n]
}

document.write('<img name="defaultimageZZZ" src="'+randomimagesZZZ[Math.floor(Math.random()*(randomimagesZZZ.length))]+'">')

function rotateimageZZZ()
{

if (curindexZZZ==(tempindexZZZ=Math.floor(Math.random()*(randomimagesZZZ.length)))){
curindexZZZ=curindexZZZ==0? 1 : curindexZZZ-1
}
else
curindexZZZ=tempindexZZZ

document.images.defaultimageZZZ.src=randomimagesZZZ[curindexZZZ]
}

setInterval("rotateimageZZZ()",delay)
</script>
1

Nekaj novega sem se naučil.

Hvala

1