Avatar billede compac Seniormester
02. oktober 2002 - 17:03 Der er 15 kommentarer og
1 løsning

Løbetext

Hvordan laver jeg en tekst der løber hen over skærmen - og starter forfra når den er nået over?
Mvh
Avatar billede likedon Nybegynder
02. oktober 2002 - 17:06 #1
<MARQUEE>Velkommen til </marquee>
Avatar billede jakoba Nybegynder
02. oktober 2002 - 17:06 #2
<marque style="width:100%;">noget tekst          (og nogen blanktegn)      </marque>
Avatar billede yousif Nybegynder
02. oktober 2002 - 17:15 #3
<marquee> virker ikke i andet end ie.. det er bedst med js
Avatar billede compac Seniormester
02. oktober 2002 - 17:18 #4
Så vidt jeg ved virker MARQUEE kun  i IE og ikke andre browsere.
Er der nogen andre måder at gøre det på?
Avatar billede ztyxx Nybegynder
02. oktober 2002 - 17:20 #5
prøv dette

<html>
<head>
<title>Rullende tekst</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript">
<!--
<!--
function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
// -->

function MM_timelineGoto(tmLnName, fNew, numGotos) { //v2.0
  //Copyright 1997 Macromedia, Inc. All rights reserved.
  var i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,lastKeyFr,propNum,theObj;
  if (document.MM_Time == null) MM_initTimelines(); //if *very* 1st time
  tmLn = document.MM_Time[tmLnName];
  if (numGotos != null)
    if (tmLn.gotoCount == null) tmLn.gotoCount = 1;
    else if (tmLn.gotoCount++ >= numGotos) {tmLn.gotoCount=0; return}
  jmpFwd = (fNew > tmLn.curFrame);
  for (i = 0; i < tmLn.length; i++) {
    sprite = (jmpFwd)? tmLn[i] : tmLn[(tmLn.length-1)-i]; //count bkwds if jumping back
    if (sprite.charAt(0) == "s") {
      numKeyFr = sprite.keyFrames.length;
      firstKeyFr = sprite.keyFrames[0];
      lastKeyFr = sprite.keyFrames[numKeyFr - 1];
      if ((jmpFwd && fNew<firstKeyFr) || (!jmpFwd && lastKeyFr<fNew)) continue; //skip if untouchd
      for (keyFrm=1; keyFrm<numKeyFr && fNew>=sprite.keyFrames[keyFrm]; keyFrm++);
      for (j=0; j<sprite.values.length; j++) {
        props = sprite.values[j];
        if (numKeyFr == props.length) propNum = keyFrm-1 //keyframes only
        else propNum = Math.min(Math.max(0,fNew-firstKeyFr),props.length-1); //or keep in legal range
        if (sprite.obj != null) {
          if (props.prop2 == null) sprite.obj[props.prop] = props[propNum];
          else        sprite.obj[props.prop2][props.prop] = props[propNum];
      } }
    } else if (sprite.charAt(0)=='b' && fNew == sprite.frame) eval(sprite.value);
  }
  tmLn.curFrame = fNew;
  if (tmLn.ID == 0) eval('MM_timelinePlay(tmLnName)');
}

function MM_timelinePlay(tmLnName, myID) { //v1.2
  //Copyright 1997 Macromedia, Inc. All rights reserved.
  var i,j,tmLn,props,keyFrm,sprite,numKeyFr,firstKeyFr,propNum,theObj,firstTime=false;
  if (document.MM_Time == null) MM_initTimelines(); //if *very* 1st time
  tmLn = document.MM_Time[tmLnName];
  if (myID == null) { myID = ++tmLn.ID; firstTime=true;}//if new call, incr ID
  if (myID == tmLn.ID) { //if Im newest
    setTimeout('MM_timelinePlay("'+tmLnName+'",'+myID+')',tmLn.delay);
    fNew = ++tmLn.curFrame;
    for (i=0; i<tmLn.length; i++) {
      sprite = tmLn[i];
      if (sprite.charAt(0) == 's') {
        if (sprite.obj) {
          numKeyFr = sprite.keyFrames.length; firstKeyFr = sprite.keyFrames[0];
          if (fNew >= firstKeyFr && fNew <= sprite.keyFrames[numKeyFr-1]) {//in range
            keyFrm=1;
            for (j=0; j<sprite.values.length; j++) {
              props = sprite.values[j];
              if (numKeyFr != props.length) {
                if (props.prop2 == null) sprite.obj[props.prop] = props[fNew-firstKeyFr];
                else        sprite.obj[props.prop2][props.prop] = props[fNew-firstKeyFr];
              } else {
                while (keyFrm<numKeyFr && fNew>=sprite.keyFrames[keyFrm]) keyFrm++;
                if (firstTime || fNew==sprite.keyFrames[keyFrm-1]) {
                  if (props.prop2 == null) sprite.obj[props.prop] = props[keyFrm-1];
                  else        sprite.obj[props.prop2][props.prop] = props[keyFrm-1];
        } } } } }
      } else if (sprite.charAt(0)=='b' && fNew == sprite.frame) eval(sprite.value);
      if (fNew > tmLn.lastFrame) tmLn.ID = 0;
  } }
}

function MM_initTimelines() { //v4.0
    //MM_initTimelines() Copyright 1997 Macromedia, Inc. All rights reserved.
    var ns = navigator.appName == "Netscape";
    var ns4 = (ns && parseInt(navigator.appVersion) == 4);
    var ns5 = (ns && parseInt(navigator.appVersion) > 4);
    document.MM_Time = new Array(1);
    document.MM_Time[0] = new Array(2);
    document.MM_Time["Timeline1"] = document.MM_Time[0];
    document.MM_Time[0].MM_Name = "Timeline1";
    document.MM_Time[0].fps = 15;
    document.MM_Time[0][0] = new String("sprite");
    document.MM_Time[0][0].slot = 1;
    if (ns4)
        document.MM_Time[0][0].obj = document["Layer1"];
    else if (ns5)
        document.MM_Time[0][0].obj = document.getElementById("Layer1");
    else
        document.MM_Time[0][0].obj = document.all ? document.all["Layer1"] : null;
    document.MM_Time[0][0].keyFrames = new Array(1, 45);
    document.MM_Time[0][0].values = new Array(2);
    if (ns5)
        document.MM_Time[0][0].values[0] = new Array("25px", "44px", "63px", "82px", "101px", "120px", "139px", "158px", "177px", "196px", "215px", "234px", "252px", "271px", "290px", "309px", "328px", "347px", "366px", "385px", "404px", "423px", "442px", "461px", "480px", "499px", "518px", "537px", "556px", "575px", "594px", "613px", "632px", "651px", "669px", "688px", "707px", "726px", "745px", "764px", "783px", "802px", "821px", "840px", "859px");
    else
        document.MM_Time[0][0].values[0] = new Array(25,44,63,82,101,120,139,158,177,196,215,234,252,271,290,309,328,347,366,385,404,423,442,461,480,499,518,537,556,575,594,613,632,651,669,688,707,726,745,764,783,802,821,840,859);
    document.MM_Time[0][0].values[0].prop = "left";
    if (ns5)
        document.MM_Time[0][0].values[1] = new Array("26px", "26px", "26px", "26px", "26px", "26px", "26px", "26px", "26px", "26px", "26px", "26px", "26px", "26px", "26px", "26px", "26px", "26px", "26px", "26px", "26px", "26px", "27px", "27px", "27px", "27px", "27px", "27px", "27px", "27px", "27px", "27px", "27px", "27px", "27px", "27px", "27px", "27px", "27px", "27px", "27px", "27px", "27px", "27px", "27px");
    else
        document.MM_Time[0][0].values[1] = new Array(26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27);
    document.MM_Time[0][0].values[1].prop = "top";
    if (!ns4) {
        document.MM_Time[0][0].values[0].prop2 = "style";
        document.MM_Time[0][0].values[1].prop2 = "style";
    }
    document.MM_Time[0][1] = new String("behavior");
    document.MM_Time[0][1].frame = 46;
    document.MM_Time[0][1].value = "MM_timelineGoto('Timeline1','1')";
    document.MM_Time[0].lastFrame = 46;
    for (i=0; i<document.MM_Time.length; i++) {
        document.MM_Time[i].ID = null;
        document.MM_Time[i].curFrame = 0;
        document.MM_Time[i].delay = 1000/document.MM_Time[i].fps;
    }
}
//-->
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000" onLoad="MM_timelinePlay('Timeline1')">
<div id="Layer1" style="position:absolute; width:200px; height:29px; z-index:1; top: 26px; left: 63px">tekst
  der ruller</div>
</body>
</html>
Avatar billede ztyxx Nybegynder
02. oktober 2002 - 17:20 #6
det kan nok laves enklere
Avatar billede nikolajdu Nybegynder
02. oktober 2002 - 17:32 #7
Det her er min version og den er vidst en anelse mere overskuelig ;-)

<html>
<head>
    <title></title>
<script language="JavaScript">
<!--

tekst = new Array()
tekst[0] = "Hej her er min alt for fede tekst :))";
tekst[1] = "Woaw vi skiftede....";
tekst[2] = "Og igen manner...";
tekst[3] = "Hold op det er festligt...";
tekst[4] = "Juhu sgu du!!";

a = 0;
tl = tekst.length;

function init() {
    test.style.xpos = -200
    a++
if(a<tl){
document.getElementById('test').innerHTML = tekst[a-1]
    }else{
    document.getElementById('test').innerHTML = tekst[0]
    a=0;
    }
    moveMe();
}
    function moveMe(){

    if (document.getElementById('test').style.xpos<screen.availWidth){
    document.getElementById('test').style.xpos += 1;
    document.getElementById('test').style.left = document.getElementById('test').style.xpos
    setTimeout("moveMe()",5)
    }else{
    init();
    }
}
   
    //-->

    </script>
</head>

<body onLoad="init()">
<div id="test" style="position: absolute; left:-200; top:0; width: 200; height:100; z-index: 3;"></div>

</body>
</html>
Avatar billede Slettet bruger
02. oktober 2002 - 20:24 #8
Her:
http://www.dynamicdrive.com/dynamicindex2/cmarquee.htm
Den virker i alle browsere i modsætning til nikolajdus, der kun virker i IE5+ og NS6+.
Avatar billede o-zone Nybegynder
02. oktober 2002 - 22:38 #9
phoenixv>>> Alle og alle browsere... den virker ikke i min Opera 6.0 :-(
Avatar billede jakoba Nybegynder
02. oktober 2002 - 22:46 #10
Altså i js-ere. jeg håbede lige vi ku få ham til at tage IE-only <marque så jeg selv i det mindste blev fri for at se det der distraherende scrolleri :-))
Avatar billede nikolajdu Nybegynder
02. oktober 2002 - 23:05 #11
*lol*

Genrelt så har Jakob ret. Marqueés burde aldrig være blevet opfundet..
Avatar billede ztyxx Nybegynder
03. oktober 2002 - 00:20 #12
enig med jakob og nikolaj, og det ville jo så få den effekt at der ville blive større efterspørgsel efter nikolajs flashting*LOL*
Avatar billede nikolajdu Nybegynder
03. oktober 2002 - 10:00 #13
hehe :)
Avatar billede compac Seniormester
03. oktober 2002 - 10:03 #14
Interssant diskussion!
Men når kunderne forlanger det er der vel ikke andet at gøre!

Tilbage til emnet:
Hvordan får jeg selve teksten lagt i en variabel så ændringer bliver lettere?
Avatar billede nikolajdu Nybegynder
03. oktober 2002 - 10:52 #15
Bruger min *LOL*
Avatar billede Slettet bruger
03. oktober 2002 - 14:36 #16
Teksten står på denne linje:

var marqueecontents='<font face="Arial"><strong><big>Thank you for visiting <a href="http://dynamicdrive.com">Dynamic Drive.</a> If you find this script useful, please consider linking to us by <a href="../link.htm">click here.</a> Enjoy your stay!</big></strong></font>'

Det er bare at ændre dér!
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