Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    70

    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:

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
    <head>
    <title></title>
    <script type="text/javascript">
    // Accessible Scroller by Mike Foskett (http://www.websemantics.co.uk/). 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<(pw*4)*-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[i].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 */
    #controls a {}
    
    /* add formatting for the scrolling text */
    #tag {margin:2px 0}
    
    /* #testP must also contain all text-sizing properties of #tag */
    #testP {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>
    Attendo news..grazie a tutti!

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    70
    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?

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    se le news vengono caricate tramite js puoi inserire nel flash, in coda a tutto, una chiamata alla funzione javascript che caricherà le news tramite ajax e le posizionerà nel box news....

    è la soluzione più pratica...





    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    70
    wow...questa soluzione mi piace parecchio, ma come si fa?hai qualcosa da farmi vedere?così magari faccio due o tre prove..o se volessi illuminarmi tu...

    Comunque non ho problemi se le news vengono caricate dinamicamente da un campo nel DB tramite codice ASP?.. :master:

    Grazie ancora..

  5. #5
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    ok allora se le carichi con script lato server ti propongo questa soluzione: il dive delle news
    codice:
    <div id="news_box" style="display: none">
    <% ..... %>
    </div>
    nel AScript a fine caricamento del menu metti
    codice:
    getURL("javascript:ShowNews();")
    ed infine la funzione javascript

    codice:
    function ShowNews()
      {
      document.getElementById('news_box').style['display']= 'block';
      }

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    70
    Cio ho fatto come mi hai detto tu, e devo dire che le news non vengono caricate, ovvero non mi da + il problema della visualizzazione..
    L'unico problema è che appena finito di caricare il filmato flash, ovvero quando viene eseguita l'istruzione getURL("java-script:ShowNews();") in flash, mi compare il seguente messaggio in firefox:

    Firefox non sa come gestire.......blabla.......il protocollo java-script non è associato ad alcun programma....
    Okey che vuol dire?ho guardato un po' in giro ma non so come risolvere..
    Poi su IE7 mi visualizza una pagina vuota con indirizzo:

    java-script:ShowNews();
    Anche lui mi sa che non sa come interpretarla..

    Come faccio a risolvere? :master:
    Grazie a tutti!!!

  7. #7
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    il trattino tra java e script: lo inserisce automaticamente il forum, va tolto

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    70
    ..eheh..

    Grazie infinite ora funziona..

    Grazie sopratutto a dottwatson, hai davvero avuto una bella idea a richiamare la javascript dal flash..non ci avevo proprio pensato..bravobravo..

    Grazie!

  9. #9
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    figurati

    che questo post possa essere di aiuto anche ad altri

    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

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 © 2024 vBulletin Solutions, Inc. All rights reserved.