• User

    Caricare una parte di sito subito e l'altra quando quest'ultima ha terminato..

    Ciao ragazzi ho un problema, sto realizzando un sito web che ha un menu fatto in flash un po' pesantuccio con un preload annesso..
    Sotto a questo ho lasciato uno spazio per le news flash..che vengono caricate da DB e visualizzate come testo scorrevole da destra a sinistra tramite un javascript..

    Cosa accade?Quando carico la pagina a cache vuota, mentre mi esegue il preload del menu in flash, nel riquadro lasciato per le news mi vengono visualizzati i contenuti di quest'ultime una sotto l'altra tutte "appiccicate" fra loro..insomma una gran ciofeca.. 😮
    E poi quando il preload è terminato, e il menu è caricato correttamente, le news vengono visualizzate correttamente nel loro riquadro..

    Quindi mi chiedevo se era possibile, tramite un javascript, di poter visualizzare le news solo quando il menu si era scaricato correttamente..visto che l'errore/orrore è solo li..
    E' realizzabile una cosa del genere secondo voi?

    Il javascript per il testo scorrevole che sto utilizzando è questo:

    [html]
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title></title>
    <script type="text/javascript">
    Retain this message and you may use the code freely.

    var speed=50 // speed of scroller
    var step=3 // smoothness of movement
    var top="#top" // name of anchor used as page top when clicking start / stop / show
    var Start= "Start" // Text for start link
    var Stop = "Stop" // Text for stop link
    var Show = "Show" // Text for show link

    var x, scroll, divW, sText=""

    function onclickIE(idAttr,handler,call){
    if ((document.all)&&(document.getElementById)){idAttr[handler]=new Function(call)}
    }

    function addLink(id,call,txt){
    var e=document.createElement('A')
    e.setAttribute('href',top)
    e.setAttribute('onclick',call)
    var linktext=document.createTextNode(txt)
    e.appendChild(linktext)
    document.getElementById(id).appendChild(e)
    }

    function addControls(){
    addLink('controls','clickAction(0)',Stop)
    onclickIE(document.getElementById('controls').childNodes[0],"onclick",'clickAction(0)')
    document.getElementById('controls').appendChild(document.createTextNode(' | '))
    addLink('controls','clickAction(2)',Show)
    onclickIE(document.getElementById('controls').childNodes[2],"onclick",'clickAction(2)')
    }

    function stopScroller(){clearTimeout(scroll)}

    function setAction(node,callvalue,txt){
    var c=document.getElementById('controls')
    c.childNodes[node].setAttribute('onclick','clickAction('+callvalue+')')
    onclickIE(document.getElementById('controls').childNodes[node],"onclick",'clickAction('+callvalue+')')
    c.childNodes[node].firstChild.nodeValue=txt
    }

    function clickAction(no){
    switch(no) {
    case 0:
    stopScroller()
    setAction(0,1,Start)
    setAction(2,2,Show)
    break
    case 1:
    startScroller()
    setAction(0,0,Stop)
    setAction(2,2,Show)
    break
    case 2:
    stopScroller()
    setAction(0,1,Start)
    setAction(2,3,Start)
    x=0
    document.getElementById('tag').style.whiteSpace='normal'
    document.getElementById('tag').style.left='0px'
    break
    case 3:
    startScroller()
    setAction(0,0,Stop)
    setAction(2,2,Show)
    x=divW
    document.getElementById('tag').style.left=x+'px'
    }
    }

    function startScroller(){
    document.getElementById('tag').style.whiteSpace='nowrap'
    var p=document.createElement('P')
    p.id='testP'
    p.style.fontSize='25%' //fix for mozilla. multiply by 4 before using
    x-=step
    if (document.getElementById('tag').className) p.className=document.getElementById('tag').className
    p.appendChild(document.createTextNode(sText))
    document.body.appendChild(p)
    pw=p.offsetWidth
    document.body.removeChild(p)
    if (x<(pw4)-1){x=divW}
    document.getElementById('tag').style.left=x+'px'
    scroll=setTimeout('startScroller()',speed)
    }

    function initScroller(){
    if (document.getElementById && document.createElement && document.body.appendChild) {
    addControls()
    document.getElementById('controls').style.display='block'
    divW=document.getElementById('scroller').offsetWidth
    x=divW
    document.getElementById('tag').style.position='relative'
    document.getElementById('tag').style.left=divW+'px'
    var ss=document.getElementById('tag').childNodes
    for (i=0;i<ss.length;i++) {sText+=ss*.nodeValue+" "}
    scroll=setTimeout('startScroller()',speed)
    }
    }

    function addLoadEvent(func) {
    if (!document.getElementById | !document.getElementsByTagName) return
    var oldonload = window.onload
    if (typeof window.onload != 'function') {
    window.onload = func;
    } else {
    window.onload = function() {
    oldonload()
    func()
    }
    }
    }

    addLoadEvent(initScroller)
    </script>
    <style type="text/css" media="screen">
    body {font:80%/150% verdana,sans-serif; color:#006; margin:0}
    h1 {font:200% georgia,serif; color:#009; margin-top:20px}

    /* position:relative and overflow:hidden are required */
    #scroller {position:relative; overflow:hidden; width:100%; border:1px solid #657}

    /* display:none prevents the controls being shown when JavaScript is not present */
    #controls {display:none; text-align:right}

    /* add link formatting for the controls */
    a {}

    /* add formatting for the scrolling text */
    #tag {margin:2px 0}

    /* #testP must also contain all text-sizing properties of */
    {visibility:hidden; position:absolute; white-space:nowrap;}

    /* used as a page top marker and to limit width */
    #top {width:350px; margin:auto}

    </style>
    

    </head>
    <body>
    <h2>Text Scroller accessibile</h2>
    <div id="scroller">
    <p id="tag">Ciao io sono il messaggio. usa i link a destra per osservarmi meglio. Ciao!!</p>
    </div>
    <p id="controls"></p>

    </BODY>
    </HTML>
    [/html]Attendo news..grazie a tutti!:wink3:


  • User

    Altra domanda e se facessi in modo, magari con wait o sleep o loop che aspetti a caricare questo script?o ancor meglio il <div id="news">..</div> che identifica le news..non dovrei riuscire a risolvere?

    Ho provato anche con il marquee, ma uno non è W3C standard e due in firefox si vede in un modo e in ie7 si vede in un'altro..

    Ragazzi qualche aiuto?


  • User Attivo

    Potresti nascondere il div che contiene le news, e farlo apparire quando è tutto caricato...