Avatar billede quarkb Nybegynder
01. december 2011 - 22:22 Der er 8 kommentarer og
1 løsning

Slideshow

Nedenstående javascript giver mig et fint slideshow, men det starter med samme billede hver gang, hvordan ændre jeg til at vælge forskeligt billede ved start af siden.

<script>
// START OF SCRIPT-CONFIGURATION ///////////////////////////////////////////////////////

var imgurl= new Array()
// Your images. Add as many images as you like
imgurl[0]="/images/slide/slide01.png"
imgurl[1]="/images/slide/slide02.png"
imgurl[2]="/images/slide/slide03.png"
imgurl[3]="/images/slide/slide04.png"
imgurl[4]="/images/slide/slide05.png"
imgurl[5]="/images/slide/slide06.png"
imgurl[6]="/images/slide/slide07.png"

// number of bluring layers. A high value will stretch the transition effect
var number_blur_layers=9

// width of image, pixels
var img_width=360

// height of images, pixels
var img_height=224

// height of textbox below image, pixels
// var text_height=0

// stillstand, seconds
var pause=5

// END OF SCRIPT-CONFIGURATION ///////////////////////////////////////////////////////
// Do not edit below this line

var i_span=number_blur_layers-1
var i_opacity=1
var i_imgurl=0
var timer
var low_range=0
var high_range=12
// var total_height=img_height+text_height
var total_height=img_height
pause*=600
var ie=document.all?1:0

function sharpen(){
    if (i_span>=1) {
        document.getElementById('span'+i_span).style.visibility="hidden"
        if (ie) {
            document.getElementById('span0').filters.alpha.opacity=i_opacity
        }
        else {
            document.getElementById('span0').style.opacity=i_opacity/100
        }
        i_span--
        i_opacity+=100/number_blur_layers
       
        timer=setTimeout("sharpen()",30)
    }
    else {
//        document.getElementById('textbox').innerHTML=message[i_imgurl]
        document.getElementById('span0').style.visibility="visible"
        clearTimeout(timer)
        i_span=1
        i_imgurl++
        if (i_imgurl>=imgurl.length) {i_imgurl=0}
        i_opacity=100
        timer=setTimeout("doblur()",pause)
    }
}


function doblur(){
    if (i_span<number_blur_layers) {
        document.getElementById('textbox').innerHTML=""
        document.getElementById('span'+i_span).innerHTML="<img src='"+imgurl[i_imgurl]+"'>"
        document.getElementById('span'+i_span).style.visibility="visible"
        if (ie) {
            document.getElementById('span0').filters.alpha.opacity=i_opacity
        }
        else {
            document.getElementById('span0').style.opacity=i_opacity/100
        }
        i_opacity-=100/number_blur_layers
        i_span++
        timer=setTimeout("doblur()",30)
    }
    else {
//        document.getElementById('span0').innerHTML="<a href='"+imglink[i_imgurl]+"'><img src='"+imgurl[i_imgurl]+"' border=0></a>"
        document.getElementById('span0').innerHTML="<img src='"+imgurl[i_imgurl]+"' border=0'>"
        clearTimeout(timer)
        i_span=number_blur_layers-1
        i_opacity=0
        sharpen()
    }
}

document.write("<div id='roof' style='position:relative; width:"+img_width+"px; height:"+total_height+"px;overflow:hidden;'>")
document.write("<div id='span0' style='position:absolute;top:0px;left:0px;filter:alpha(opacity=0);opacity:0;'><img src='"+imgurl[0]+"' border=0'></div>")
for (i=1;i<number_blur_layers;i++) {
    var x_ran=(Math.round(Math.random()*high_range)+low_range)-(high_range/2)
    var y_ran=(Math.round(Math.random()*high_range)+low_range)-(high_range/2)
    document.write("<div id='span"+i+"' class='ticker' style='position:absolute;top:"+y_ran+"px;left:"+x_ran+"px;filter:alpha(opacity=2);opacity:0.02;'><img src='"+imgurl[0]+"'></div>")
}
document.write("<div id='textbox' class='textstyle' style='position:absolute;top:"+img_height+"px;left:0px;height:"+img_height+"px;width:"+img_width+";'></div>")
document.write("</div")

window.onload=sharpen
</script>
Avatar billede pstidsen Novice
01. december 2011 - 22:43 #1
Hmm måske kan du på den måde få flette: http://kimludvigsen.dk/programmer-internet-kompozer-trin-php.php#tilfaeldigt_billede ind i. Men der er sikkert en MEGEt smartere måde :-)
Avatar billede JensPeterSvensson Nybegynder
02. december 2011 - 09:26 #2
Den lette løsning er bare at ændre tilfældigt i dit array:


var r = Math.floor(Math.random()*imgurl.length);
imgurl = imgurl.slice(r).concat(imgurl.slice(0, r));
Avatar billede olebole Juniormester
02. december 2011 - 17:19 #3
<ole>

- tjaah, og jeg mener jo så, den lette løsning er at sætte pointeren til et tilfældigt tal:

var i_imgurl = Math.floor(Math.random()*imgurl.length);
window.onload=sharpen;

/mvh
</bole>
Avatar billede olebole Juniormester
02. december 2011 - 17:20 #4
Sorry ... selvfølgelig uden var:

i_imgurl = Math.floor(Math.random()*imgurl.length);
window.onload=sharpen;
Avatar billede JensPeterSvensson Nybegynder
02. december 2011 - 17:27 #5
Ville jeg også have foreslået, men det script han bruger ville kræve, at man ændrede mindst et sted mere. Der hvor den skriver billed elementet bruger den bare index 0 og ikke indekset pointeren peger på.
Avatar billede olebole Juniormester
02. december 2011 - 17:37 #6
Hmmmm ... ja, efter en nøjere gennemlæsning, ville jeg nok af flere grunde skrive det helt om  =)
Avatar billede quarkb Nybegynder
02. december 2011 - 18:01 #7
Jeg er bare ikke dus med java script, hvilket sikkert også kan ses, da scriptet er hentet fra nettet. Hvor skal

var r = Math.floor(Math.random()*imgurl.length);
imgurl = imgurl.slice(r).concat(imgurl.slice(0, r));

indsættes
Avatar billede JensPeterSvensson Nybegynder
03. december 2011 - 10:08 #8
efter

imgurl[6]="/images/slide/slide07.png"
Avatar billede quarkb Nybegynder
03. december 2011 - 18:18 #9
Kanon, tak JPS... Det var lige det der skulle til.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester