Avatar billede kovalt Nybegynder
22. maj 2003 - 23:25 Der er 26 kommentarer og
1 løsning

Scroll-tekst der fortsætter ved reload

Hej

  Jeg ved godt det kan være at det her er lidt ud i hampen - men jeg synes nu alligevel det er forsøg værd, hvis der nu skulle side en derude med viden omkring at dette kan lade sig gøre.

  Jeg har et site, som er opbygge med includes (ingen frames). I toppen af siden har jeg en scroll-funktion kørende der viser gårsdagen begivenheder. Som det er nu starter denne forfra hver gang der trykket på et link, idet hele siden jo hentes hver gang.... er der en måde hvorpå man kan undgå det, hvis jeg ikke ønsker at anvende frames...

/kovlat
Avatar billede mortrr Praktikant
22. maj 2003 - 23:29 #1
Gem positionen i en cookie, og aflæs den når du starter med at scrolle.
Hvis der ingen cookie er, starter du på nul.
Avatar billede kovalt Nybegynder
22. maj 2003 - 23:34 #2
Er det hastighedsmæssigt en forsvarlig måde?
Avatar billede kovalt Nybegynder
22. maj 2003 - 23:34 #3
hvorledes får jeg positionen ud?
Avatar billede mortrr Praktikant
22. maj 2003 - 23:40 #4
Det tager ikke alverden tid at sætte, men det kommer jo lidt an på din scroll funktion - hvor meget kraft den allerede tager.

Positionen må være et eller andet sted i din scroll-funktion. Som jeg jo ikke kender. Endnu.
Avatar billede kovalt Nybegynder
23. maj 2003 - 00:06 #5
Lige nu bruger jeg bare:

<marquee style="font-size:9; font-family:Verdana; color:#00FF00" align="middle" scrollamount="2" scrolldelay="60">Her kommer noget scroll</marguee>

Kender du en bedre? for det lader ikke til at det er muligt at trække ret meget ud af den her?
Avatar billede mortrr Praktikant
23. maj 2003 - 00:24 #6
Nej - den kan man ikke gøre så meget med.

Hvad med:
<html>
<head>
<script LANGUAGE="javascript">
var action;
Glides=4;
curGlide=0;
var lysavis=false;

function ScrollMessage() {
    lysavis=document.all.lysAvisen;
    lysavis.style.pixelLeft = 250;
    action = window.setInterval("Glide()",60);
}

function Glide() {
    lysavis.style.pixelLeft -= 2;
    if (lysavis.style.pixelLeft<=0-lysavis.clientWidth-10) {
        lysavis.style.pixelLeft=250;
        curGlide++;
        if (curGlide>=Glides) {
            window.clearInterval(action);
            lysavis.style.visibility = "hidden";
        }
    }
}
</script>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0" onload="ScrollMessage()">
<div ID="lysavisContainer" style="position:absolute;top:10;left:50;width:250;height:30;overflow:hidden"><div id="lysAvisen" style="position:absolute;left:250;top:0;"><pre id="Teksten" name="Teksten">Her har vi så en hel masse tekst som scroller henover lysavisen</pre></div></div>
</body>

</html>
Avatar billede kovalt Nybegynder
23. maj 2003 - 12:27 #7
Jo det virker fint.... men der er ikke nogen cookie, der husker positionen.
Avatar billede mortrr Praktikant
23. maj 2003 - 12:30 #8
Du skal da også lave lidt selv, ikke? ;-)

Men hvis du ikke har leget med cookies før, kan jeg da godt ændre den.
?
Avatar billede kovalt Nybegynder
23. maj 2003 - 12:35 #9
Hvis jeg nu gerne vil ha teksten grøn hvorledes er det så?

Jeg har prøvet med:

<div ID="lysavisContainer" style="position:absolute;top:10;left:50;width:250;height:30;overflow:hidden">

<div id="lysAvisen" style="position:absolute;left:250;top:0;">

<pre id="Teksten" name="Teksten" style="color:#00FF00">

Her har vi så en hel masse tekst som scroller henover lysavisen

</pre>
</div>
</div>

men det virker ikke?
Avatar billede kovalt Nybegynder
23. maj 2003 - 12:36 #10
du må gerne få flere points... jeg er en ret stor rookie indenfor javascripts...

Bliver nødt til at smutte....

Jeg kigge igen i aften...

tanx for hjælpen so far
Avatar billede mortrr Praktikant
23. maj 2003 - 14:18 #11
Hermed en med cookies og grøn tekst.

Forøvrigt - Glides bestemmer hvor mange gange den kører.

<html>
<head>
<script LANGUAGE="javascript">
var action;
var Glides=4;
var curGlide=0;
var lysavis=false;
var StartPos=250;
var docCookie=""+document.cookie;
if (docCookie!="") {
    docCookie=docCookie.split(";");
    for (i=0;i<docCookie.length;i++)
        docCookie[i]=docCookie[i].split("=");
    for (i=0;i<docCookie.length;i++)
        if (docCookie[i][0]=="Lysavis") {
            StartPos=parseInt(docCookie[i][1],10);
            if (isNaN(StartPos))
                StartPos=250;
        }
}

function ScrollMessage() {
    lysavis=document.all.lysAvisen;
    lysavis.style.pixelLeft = StartPos;
    action = window.setInterval("Glide()",60);
}

function Glide() {
    lysavis.style.pixelLeft -= 2;
    if (lysavis.style.pixelLeft<=0-lysavis.clientWidth-10) {
        lysavis.style.pixelLeft=250;
        curGlide++;
        if (curGlide>=Glides) {
            window.clearInterval(action);
            lysavis.style.visibility = "hidden";
        }
    }
    document.cookie="Lysavis="+lysavis.style.pixelLeft;
}
</script>
</head>
<body marginwidth="0" marginheight="0" topmargin="0" leftmargin="0" onload="ScrollMessage()">
<div ID="lysavisContainer" style="position:absolute;top:10;left:50;width:250;height:30;overflow:hidden"><div id="lysAvisen" style="position:absolute;left:250;top:0;"><pre id="Teksten" name="Teksten" style="font-family:Arial;color:#00FF00">Her har vi så en hel masse tekst som scroller henover lysavisen</pre></div></div>
</body>
</html>
Avatar billede kovalt Nybegynder
23. maj 2003 - 20:21 #12
når jeg flytter den ned på siden - altså væk fra 0,0 forsvinder den... det er lige som om der ligger et usynligt lag og skygger....

jeg har prøvet at tilfølje et z-index sådan her men det virker ikke

<div ID="lysavisContainer" style="position:absolute;left:500;top:12;width:250;height:20;overflow:hidden;z-index:10">
<div id="lysAvisen" style="position:absolute;left:500;top:12;color:#000000;z-index:10">
<pre id="Teksten" name="Teksten" style="font-family:Verdana;color:#00FF00">
Her kommer teksten
</pre>
</div>
</div>
Avatar billede mortrr Praktikant
24. maj 2003 - 15:28 #13
Du skal kun ændre positionen på containeren, og ikke lysavisen.
Lysavisens absolutte position er i forhold til containeren.
Så lysavisens top skal typisk være 0
Avatar billede kovalt Nybegynder
25. maj 2003 - 10:30 #14
Aha.... ja nu virker det også :-)

Men lydavisen starter forfra hver gang jeg trykker på et link eller hver gang jeg opdaterer siden.....

Den huske ikke hvor langt den er kommet i scrollen
Avatar billede mortrr Praktikant
25. maj 2003 - 11:28 #15
Har du skiftet hele scriptet ud med det fra den sidste?

Specielt
    lysavis.style.pixelLeft = StartPos;
og
  document.cookie="Lysavis="+lysavis.style.pixelLeft;
er vigtige.

Prøv at få vist om der er er en cookie.
document.write(document.cookie);
et eller andet sted i scriptet.
Avatar billede kovalt Nybegynder
26. maj 2003 - 14:26 #16
Det er der:

SESSIONIDCSRCCSTA=GDNHIPPGMJDGNMPMKF; Lysavis=-226

og tallet efter lysavis skifter også fint nok når jeg opdaterer siden eller trykker på et link... however scrollen starter forfra hver gang
Avatar billede mortrr Praktikant
26. maj 2003 - 15:52 #17
Hvordan ser "hele" dit script ud.
Avatar billede kovalt Nybegynder
27. maj 2003 - 14:01 #18
<script LANGUAGE="javascript">
var action;
var Glides=4;
var curGlide=0;
var lysavis=false;
var StartPos=250;
var docCookie=""+document.cookie;
if (docCookie!="") {
    docCookie=docCookie.split(";");
    for (i=0;i<docCookie.length;i++)
        docCookie[i]=docCookie[i].split("=");
    for (i=0;i<docCookie.length;i++)
        if (docCookie[i][0]=="Lysavis") {
            StartPos=parseInt(docCookie[i][1],10);
            if (isNaN(StartPos))
                StartPos=250;
        }
}

function ScrollMessage() {
    lysavis=document.all.lysAvisen;
    lysavis.style.pixelLeft = StartPos;
    action = window.setInterval("Glide()",60);
}

function Glide() {
    lysavis.style.pixelLeft -= 2;
    if (lysavis.style.pixelLeft<=0-lysavis.clientWidth-10) {
        lysavis.style.pixelLeft=250;
        curGlide++;
        if (curGlide>=Glides) {
            window.clearInterval(action);
            lysavis.style.visibility = "hidden";
        }
    }
    document.cookie="Lysavis="+lysavis.style.pixelLeft;
}
document.write(document.cookie);
</script>


og sådan her nede i bodyen

<div ID="lysavisContainer" style="position:relative;left:0;top:0;width:200;height:20;overflow:hidden">
<div id="lysAvisen" style="position:absolute;left:0;top:2;color:#000000">
<pre id="Teksten" name="Teksten" style="font-family:Verdana;color:#00FF00;font-size:10px">
<% =strDagensKampe %>
</pre></div></div>
Avatar billede kovalt Nybegynder
27. maj 2003 - 14:06 #19
men lige virker scrollen ikke!!
Avatar billede kovalt Nybegynder
27. maj 2003 - 14:10 #20
nu er scrollen der igen - var bare lige mig der havde fucket lidt op :-) - og den skriver stadig forskellige ID ved lysavisen når jeg udskriver cookien
Avatar billede kovalt Nybegynder
27. maj 2003 - 14:11 #21
scrollen virker ikke bår jeg udskriver cookien - men sådan skal det måske være?
Avatar billede mortrr Praktikant
27. maj 2003 - 18:03 #22
Mystisk.
En direkte kopi, hvor jeg bare tilføjede en <body onload="ScrollMessage()">, og noget tekst, virker med det samme.

Jeg har lagt den ud på et af mine sites:
http://motorsport.dk/test/marquee.htm

Hvordan ser den ud?
Avatar billede kovalt Nybegynder
28. maj 2003 - 00:13 #23
Det ser jo fint ud på din side må man sige...

Du kan ser her: http://www.oddsportalen.dk/ - i den sorte boks lige under menuen - det virker ikke helt....

Kan det ha noget at gøre med at den tekst jeg scroller er et udtræk fra en DB, som bliver genereret hver gang siden hentes (hvilket vel i grunden ikke er hensigtsmæssigt eller?)

/kovalt
Avatar billede kovalt Nybegynder
28. maj 2003 - 08:31 #24
Hmmmm....

hvis jeg tager den source der virker fra din adresse og kopiere over på min server virker det ikke....

Er der noget med at der er nogle servere, der ikke understøtter et eller andet som vi bruger her?
Avatar billede mortrr Praktikant
29. maj 2003 - 16:00 #25
Hvis cookien indeholder det den skal, så kan jeg ikke rigtigt se hvorfor det ikke skulle virke.
(det virker også selv om der er flere cookies, så det er ikke derfor)

Kan du ikke lave en side på din server, hvor den laver en alert med cookien og docCookie, eller udskriver dem til siden?
Avatar billede kovalt Nybegynder
05. juni 2003 - 18:55 #26
hvad skulle det lige gøre....
Avatar billede mortrr Praktikant
09. juni 2003 - 14:22 #27
For at finde ud af om den misforstår noget i cookien.
Af en eller anden grund sættes startpositionen ikke som den skal.
Hvis den ikke vil som man vil, så må man jo prøve at finde årsagen. ;-)
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