Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Modificare lo script slideshow per renderlo "dinamico"

    Ciao a tutti,

    vorrei chiedere aiuto con questo post...ho trovato su internet un piccolo script che crea una sorta di slideshow orizzontale per delle immagini. Il mio problema è che queste immagini non sono fisse...vanno importate da un database.

    Come potrei modificare lo script per renderlo "dinamico" prendendo le immagini ad esempio all'interno di un div non visibile?

    posto il codice dello script:
    Codice PHP:
    <script type="text/javascript">

    /***********************************************
    * Conveyor belt slideshow script- © Dynamic Drive DHTML code library ([url]www.dynamicdrive.com[/url])
    * This notice MUST stay intact for legal use
    * Visit Dynamic Drive at [url]http://www.dynamicdrive.com/[/url] for full source code
    ***********************************************/


    //Specify the slider's width (in pixels)
    var sliderwidth="600px"
    //Specify the slider's height
    var sliderheight="150px"
    //Specify the slider's slide speed (larger is faster 1-10)
    var slidespeed=3
    //configure background color:
    slidebgcolor="#333333"

    //Specify the slider's images
    var leftrightslide=new Array()
    var 
    finalslide=''

    leftrightslide[0]='[url="http://"][img]dynamicbook1.gif[/img][/url]'
    leftrightslide[1]='[url="http://"][img]dynamicbook2.gif[/img][/url]'
    leftrightslide[2]='[url="http://"][img]dynamicbook3.gif[/img][/url]'
    leftrightslide[3]='[url="http://"][img]dynamicbook4.gif[/img][/url]'
    leftrightslide[4]='[url="http://"][img]dynamicbook5.gif[/img][/url]'

    //Specify gap between each image (use HTML):
    var imagegap=" "

    //Specify pixels gap between each slideshow rotation (use integer):
    var slideshowgap=5


    ////NO NEED TO EDIT BELOW THIS LINE////////////

    var copyspeed=slidespeed
    leftrightslide
    ='<nobr>'+leftrightslide.join(imagegap)+'</nobr>'
    var iedom=document.all||document.getElementById
    if (iedom)
    document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+leftrightslide+'</span>')
    var 
    actualwidth=''
    var cross_slidens_slide

    function fillup(){
    if (
    iedom){
    cross_slide=document.getElementByIddocument.getElementById("test2") : document.all.test2
    cross_slide2
    =document.getElementByIddocument.getElementById("test3") : document.all.test3
    cross_slide
    .innerHTML=cross_slide2.innerHTML=leftrightslide
    actualwidth
    =document.allcross_slide.offsetWidth document.getElementById("temp").offsetWidth
    cross_slide2
    .style.left=actualwidth+slideshowgap+"px"
    }
    else if (
    document.layers){
    ns_slide=document.ns_slidemenu.document.ns_slidemenu2
    ns_slide2
    =document.ns_slidemenu.document.ns_slidemenu3
    ns_slide
    .document.write(leftrightslide)
    ns_slide.document.close()
    actualwidth=ns_slide.document.width
    ns_slide2
    .left=actualwidth+slideshowgap
    ns_slide2
    .document.write(leftrightslide)
    ns_slide2.document.close()
    }
    lefttime=setInterval("slideleft()",30)
    }
    window.onload=fillup

    function slideleft(){
    if (
    iedom){
    if (
    parseInt(cross_slide.style.left)>(actualwidth*(-1)+8))
    cross_slide.style.left=parseInt(cross_slide.style.left)-copyspeed+"px"
    else
    cross_slide.style.left=parseInt(cross_slide2.style.left)+actualwidth+slideshowgap+"px"

    if (parseInt(cross_slide2.style.left)>(actualwidth*(-1)+8))
    cross_slide2.style.left=parseInt(cross_slide2.style.left)-copyspeed+"px"
    else
    cross_slide2.style.left=parseInt(cross_slide.style.left)+actualwidth+slideshowgap+"px"

    }
    else if (
    document.layers){
    if (
    ns_slide.left>(actualwidth*(-1)+8))
    ns_slide.left-=copyspeed
    else
    ns_slide.left=ns_slide2.left+actualwidth+slideshowgap

    if (ns_slide2.left>(actualwidth*(-1)+8))
    ns_slide2.left-=copyspeed
    else
    ns_slide2.left=ns_slide.left+actualwidth+slideshowgap
    }
    }


    if (
    iedom||document.layers){
    with (document){
    document.write('<table border="0" cellspacing="0" cellpadding="0"><td>')
    if (
    iedom){
    write('<div style="position:relative;width:'+sliderwidth+';height:'+sliderheight+';overflow:hidden">')
    write('<div style="position:absolute;width:'+sliderwidth+';height:'+sliderheight+';background-color:'+slidebgcolor+'" onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed">')
    write('<div id="test2" style="position:absolute;left:0px;top:0px"></div>')
    write('<div id="test3" style="position:absolute;left:-1000px;top:0px"></div>')
    write('</div></div>')
    }
    else if (
    document.layers){
    write('<ilayer width='+sliderwidth+' height='+sliderheight+' name="ns_slidemenu" bgColor='+slidebgcolor+'>')
    write('<layer name="ns_slidemenu2" left=0 top=0 onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed"></layer>')
    write('<layer name="ns_slidemenu3" left=0 top=0 onMouseover="copyspeed=0" onMouseout="copyspeed=slidespeed"></layer>')
    write('</ilayer>')
    }
    document.write('</td></table>')
    }
    }
    </script> 
    come si può vedere le immagini vengono memorizzate nell'array: leftrightslide.

    Potrei importarle invece con ad esempio una getElementById...e scorrendo ad esempio il div memorizzare ad ogni cella dell'array il codice che mi visualizza l'immagine??

    Grazie a chi mi vorrà dare una mano....non so proprio da dove iniziare.... :master:

  2. #2
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    35
    sono dati che puoi benissimo ricavare dal Server, o con una chiamata ajax o semplicemente sostituendo :

    codice:
    leftrightslide[0]='[img]dynamicbook1.gif[/img]';
    leftrightslide[1]='[img]dynamicbook2.gif[/img]';
    leftrightslide[2]='[img]dynamicbook3.gif[/img]';
    leftrightslide[3]='[img]dynamicbook4.gif[/img]';
    leftrightslide[4]='[img]dynamicbook5.gif[/img]';
    in

    Codice PHP:
    <?php

    //estrapolazione recordset da db e echo delle istruzione js

    ?>
    facendo diventare la pagina appunto diamica

  3. #3
    non avevo pensato a questa possibilità...l'avevo scartata a priori credendo che non si potesse fare! ...

    invece mi hai "aperto la strada" anche per altre future applicazioni di questo "trucchetto"....senza andare a modificare parti di javascript che conosco veramente poco...

    Grazie mille!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    35
    prego :P

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.