Avatar billede mitbrugernavn Praktikant
30. oktober 2008 - 14:20 Der er 4 kommentarer og
2 løsninger

scrollbar position

har følgende:

<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div id="vis_id2"></div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>

<script>
function update () {

    document.getElementById("vis_id2").innerText = "Top: " +f_scrollTop();

    setTimeout('update()', 200);
}
update();
// cross browser functions

function f_scrollTop() {
    return f_filterResults (
        window.pageYOffset ? window.pageYOffset : 0,
        document.documentElement ? document.documentElement.scrollTop : 0,
        document.body ? document.body.scrollTop : 0
    );
}

function f_filterResults(n_win, n_docel, n_body) {
    var n_result = n_win ? n_win : 0;
    if (n_docel && (!n_result || (n_result > n_docel)))
        n_result = n_docel;
    return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}


</script>

den skal kun sætte positionen i div ved onload - når der scrolles skal dette ikke ændres - men hvordan ????
Avatar billede w13 Novice
30. oktober 2008 - 16:33 #1
Så skal du bare fjerne:

    setTimeout('update()', 200);
Avatar billede mitbrugernavn Praktikant
30. oktober 2008 - 16:55 #2
ja gid det var så nemt - har du prøvet det ???

så sætter den nemlig f_scrollTop() til 0 og det var ikke det der var meningen - den skal beholde det tal den får første gang
Avatar billede w13 Novice
30. oktober 2008 - 17:57 #3
Nej, jeg har ikke prøvet det, for det er det eneste sted, der gør at koden bliver kørt flere gange.

I hvert fald i det, du viser.

Mon ikke du skal fjerne update(); og så køre det via onload i stedet?

Hvis du fjerner setTimeout, så kører den kun én gang. Så det 0, du snakker om, er altså det tal, der sættes første gang.

Forsøg med onload.
Avatar billede mitbrugernavn Praktikant
30. oktober 2008 - 21:37 #4
mit problem er at jeg skal bruge det første tal - da den side jeg kommer til stiller sig i forhold til et anker - og der har jeg et lille spot der skal kører - og ikke så fedt at spot kører i toppen af siden og man står 500 px eller andet længere ned.....

?????
Avatar billede w13 Novice
30. oktober 2008 - 23:10 #5
Ja, men 0'et er tilsyneladende første tal. :) Når du fjerner setTimeout køres koden nemlig kun én gang. Medmindre der er andet kode andre steder, jeg ikke ser her.

Men hvis du lægger onload="update()" på dit body-tag, burde det nok virke, som du ønsker.

Ellers må jeg se et link til siden for at kunne hjælpe dig videre.
Avatar billede mitbrugernavn Praktikant
24. november 2008 - 12:01 #6
afslutter dette spørgsmål
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

IT-JOB