- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- Caricare una parte di sito subito e l'altra quando quest'ultima ha terminato..
-
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 linkvar 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!
-
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?
-
Potresti nascondere il div che contiene le news, e farlo apparire quando è tutto caricato...