Tengo un pequeño problema con este tema, la cosa es que tengo que extraer unos datos de una base de datos MySQL y mostrarlos enla pagina con un scroll de texto horizontal que se repite una y otra vez. Aparte el usuario puede ir añadiendo más texto. encontre este codigo por internet.
Código:
hay tres líneas que tube que comentar para que me funcione. una de ellas es://Specify the marquee's width (in pixels) var marqueewidth="700px" //Specify the marquee's height var marqueeheight="25px" //Specify the marquee's marquee speed (larger is faster 1-10) var marqueespeed=0 //configure background color: var marqueebgcolor="transparent" //Pause marquee onMousever (0=no. 1=yes)? var pauseit=1 //Specify the marquee's content (don't delete <nobr> tag) //Keep all content on ONE line, and backslash any single quotations (ie: that\'s great): var marqueecontent='<nobr><span class="style_scroll"><?PHP echo extraer_actMesAlrm($db,$mes); ?></span></nobr>' ////NO NEED TO EDIT BELOW THIS LINE//////////// marqueespeed=(document.all)? marqueespeed : Math.max(1, marqueespeed-1) //slow speed down by 1 for NS var copyspeed=marqueespeed var pausespeed=(pauseit==0)? copyspeed: 0 var iedom=document.all||document.getElementById if (iedom) document.write('<span id="temp" style="visibility:hidden;position:absolute;top:-100px;left:-9000px">'+marqueecontent+'</span>') var actualwidth='' var cross_marquee, ns_marquee function populate(){ if (iedom){ cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee cross_marquee.style.left=parseInt(marqueewidth)+8+"px" cross_marquee.innerHTML=marqueecontent actualwidth=document.all? temp.offsetWidth : document.getElementById("temp").offsetWidth } else if (document.layers){ ns_marquee=document.ns_marquee.document.ns_marquee2 ns_marquee.left=parseInt(marqueewidth)+8 ns_marquee.document.write(marqueecontent) ns_marquee.document.close() actualwidth=ns_marquee.document.width } lefttime=setInterval("scrollmarquee()",20) } //window.onload=populate function scrollmarquee(){ if (iedom){ if (parseInt(cross_marquee.style.left)>(actualwidth*(-1)+8)) cross_marquee.style.left=parseInt(cross_marquee.style.left)-copyspeed+"px" else cross_marquee.style.left=parseInt(marqueewidth)+8+"px" } else if (document.layers){ if (ns_marquee.left>(actualwidth*(-1)+8)) ns_marquee.left-=copyspeed else ns_marquee.left=parseInt(marqueewidth)+8 } } if (iedom||document.layers){ with (document){ //document.write('<table border="0" cellspacing="0" cellpadding="0"><td>') if (iedom){ write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden">') write('<div style="position:absolute;width:'+marqueewidth+';height:'+marqueeheight+';background-color:'+marqueebgcolor+'" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">') write('<div id="iemarquee" style="position:absolute;left:0px;top:0px"></div>') write('</div></div>') } else if (document.layers){ write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee" bgColor='+marqueebgcolor+'>') write('<layer name="ns_marquee2" left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>') write('</ilayer>') } //document.write('</td></table>') } }
Código:
este me machacaba un método que tengo en el onload del body que se ejecuta periodicamente. lo comente y añadi://window.onload=populate
Código HTML:
<body onLoad='javascript: updateMensajeria(); javascript: populate();'>
para añadir generé esta función
Código:
He probado mil cosas sin conseguir nada y es por ello que acudo a ustedes...function addcadena(cadena){ //alert(cadena); nchar2=cadena.length; control=cadena.substring(0,1); //alert(control); cadena=cadena.substring(1,nchar2); //alert(cadena); if (!buscar(cadena)) { aux=cadena.toUpperCase(); //alert(aux); if (control == 0) cadena=aux.htmlEntities()+"… ** "; else cadena=aux.htmlEntities()+" ** "; //alert(cadena); cadena2=marqueecontent; //alert(cadena2); nchar=cadena2.length; //alert(nchar); cadena3=cadena2.substring(33,(nchar-14)); //alert(cadena3); cadena2='<nobr><span class="style_scroll">'+cadena3+cadena+'</span></nobr>'; //alert(cadena2); marqueecontent=cadena2; marqueespeed=(document.all)? marqueespeed : Math.max(1, marqueespeed-1) //slow speed down by 1 for NS copyspeed=marqueespeed pausespeed=(pauseit==0)? copyspeed: 0; iedom=document.all||document.getElementById; if (iedom) document.getElementById("temp").innerHTML=marqueecontent; populate(); } }
Si me pueden ayudar... Gracias de antemano