Avatar billede gider_ikke_mere Nybegynder
29. november 2006 - 15:34 Der er 2 kommentarer og
1 løsning

Løsning til smart rulletekst

Jeg skal i intervaller have skiftet teksten på denne side: http://www.racingcar.dk/eksperten/, der hvor der står "rullenyheder". Det er en div med højden 20 og en bredde på 920px

Det er x antal tekststrenge fra en MySql database der skal vises på skift. Dette antal kan svinge.

Jeg overvejer flere muligheder: Enten skal teksten komme fra højre og køre over den forrige, eller også skal teksten skifte som et rullehjul.

Krav: Den nye tekst må ved ankomst ikke fylde mere end den eksisterende div. Jeg skal kunne justere hastigheden. Teksten skal indeholde links. Teksten skal komme flydende og ikke "hakkende". Når teksten er i position skal den blive til næste skift.

Jeg er nok mest til et rullehjul hvor hele teksten ruller ned ovenfra.

Siden kører med PHP og MySql.
Avatar billede mcardle Nybegynder
30. november 2006 - 07:13 #1
Du kan jo lege lidt med denne her... Den kan godt nok ikke lave teksten blive til der kommer en ny, men den stopper, hvis man kører musen hen over. Du kan sætte hastighed og den vil fortsætte i ring hele tiden...

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>
  <head>
    <title></title>
    <script language="JavaScript1.2">
   
    /*
    Cross browser Marquee II- © Dynamic Drive (www.dynamicdrive.com)
    For full source code, 100's more DHTML scripts, and TOS, visit http://www.dynamicdrive.com
    Credit MUST stay intact
    */
   
    //Specify the marquee's width (in pixels)
    var marqueewidth="100px";
    //Specify the marquee's height
    var marqueeheight="250px";
    //Specify the marquee's marquee speed (larger is faster 1-10)
    var marqueespeed=1;
    //Pause marquee onMousever (0=no. 1=yes)?
    var pauseit=1;
   
    //Specify the marquee's content
    //Keep all content on ONE line, and backslash any single quotations (ie: that\'s great):
   
   
    var marqueecontent = 'Du skal skrive din tekst her...';
   
   
    ////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;
    var actualheight='';
    var cross_marquee, ns_marquee;
   
    function populate(){
    if (iedom){
    cross_marquee=document.getElementById? document.getElementById("iemarquee") : document.all.iemarquee;
    cross_marquee.style.top=parseInt(marqueeheight)+8+"px";
    cross_marquee.innerHTML=marqueecontent;
    actualheight=cross_marquee.offsetHeight;
    }
    else if (document.layers){
    ns_marquee=document.ns_marquee.document.ns_marquee2;
    ns_marquee.top=parseInt(marqueeheight)+8;
    ns_marquee.document.write(marqueecontent);
    ns_marquee.document.close();
    actualheight=ns_marquee.document.height;
    }
    lefttime=setInterval("scrollmarquee()",40);
    }
    window.onload=populate;
   
    function scrollmarquee(){
   
    if (iedom){
    if (parseInt(cross_marquee.style.top)>(actualheight*(-1)+8))
    cross_marquee.style.top=parseInt(cross_marquee.style.top)-copyspeed+"px";
    else
    cross_marquee.style.top=parseInt(marqueeheight)+8+"px";
    }
    else if (document.layers){
    if (ns_marquee.top>(actualheight*(-1)+8))
    ns_marquee.top-=copyspeed;
    else
    ns_marquee.top=parseInt(marqueeheight)+8
    }
    }
   
    if (iedom||document.layers){
    with (document){
    if (iedom){
    write('<div style="position:relative;width:'+marqueewidth+';height:'+marqueeheight+';overflow:hidden" onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed">')
    write('<div id="iemarquee" style="position:absolute;left:0px;top:0px;width:100%;">')
    write('</div></div>')
    }
    else if (document.layers){
    write('<ilayer width='+marqueewidth+' height='+marqueeheight+' name="ns_marquee">')
    write('<layer name="ns_marquee2" width='+marqueewidth+' height='+marqueeheight+' left=0 top=0 onMouseover="copyspeed=pausespeed" onMouseout="copyspeed=marqueespeed"></layer>')
    write('</ilayer>')
    }
    }
    }
    </script>
  </head>
<body>



</body>
</html>

//mcardle
Avatar billede gider_ikke_mere Nybegynder
30. november 2006 - 08:18 #2
Tak for scriptet, men den har det store problem at teksten ikke bliver stående. Jeg skal kunne justere hastigheden på hvor hurtigt den nye tekst kommer, og hvor lang tid der går til næste tekst. Da mit kendskab til js kan ligge på et meget lille sted, er det begrænset hvor meget jeg selv kan tilrette.
Avatar billede gider_ikke_mere Nybegynder
30. november 2006 - 11:10 #3
Jeg har fundet denne:
http://www.dynamicdrive.com/dynamicindex2/mikescroll.htm
og denne:
http://www.dynamicdrive.com/dynamicindex2/memoryticker.htm

Den første ødelagde nogle andre funktioner i min menu som jeg ikke kunne løse (skjulte nogle andre divs). Den anden fader ikke i FF, men den bruger jeg indtil videre.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester