Avatar billede mortenbock Nybegynder
02. maj 2006 - 10:42 Der er 7 kommentarer og
1 løsning

Scroll op og ned knapper

Hejsa.

Et klassisk spørgsmål, men jeg kan ikke finde et svar her alligevel.

Min html er som følger:

<div id="kasse" style="width: 200px; height: 200px; overflow: hidden;">
  <div id="tekst">
  <p>en masse tekst...</p>
  </div>
</div>

Nu vil jeg så gerne placere en par knapper der kan scrolle op og ned i teksten.

#kasse div'et er placeret med absolute.

Det må gerne være en færdigsyet løsning (og selvf. crossbrowser) :-)
Avatar billede psykochicken Nybegynder
02. maj 2006 - 18:33 #1
Avatar billede webstuff Nybegynder
02. maj 2006 - 20:42 #2
Lavede det her til et lignende spørgsmål den anden dag :-)
http://webstuff.dk/scroll_med_js.html

Laver lige en kommentar med koden - da linket nok snart bliver flyttet.
Avatar billede webstuff Nybegynder
02. maj 2006 - 20:42 #3
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Din egen scroll effekt</title>
<style>
#ydre{
    position:relative;
    height:200px;
    width:350px;
    border:1px solid #000;
    overflow:hidden;
}
#indre{
    position:absolute;
    left:0px;
    top:0px;
}
.knap{
    cursor:pointer;
    text-align:center;
    border:1px solid #000;
    width:100px;
    margin-top:5px;
    margin-bottom:5px;
    margin-left:250px;
}
</style>
<script type="text/javascript">
var indre, ydre, maxned, betingelse = false, i = 0;

function setFalse(){
        betingelse = false;
}
function setTrue(){
        betingelse = true;
}

function init(){
    ydre = document.getElementById("ydre");
    indre = document.getElementById("indre");
    maxned = ydre.offsetHeight-indre.offsetHeight;
}
function scrollOp(){
    if(indre.offsetTop<0 && betingelse){
        indre.style.top = (indre.offsetTop +10) + "px";
        window.setTimeout("scrollOp();", 100);
    }
}
function scrollNed(){
    if(indre.offsetTop>maxned && betingelse){
        indre.style.top = (indre.offsetTop - 10) + "px";
        window.setTimeout("scrollNed();", 100);
    }
}
</script>
</head>

<body onLoad="init();">
<h1>Din egen scroll i javascript</h1>
    <div class="knap" onMouseOver="setTrue();scrollOp();" onMouseOut="setFalse();">
        Op
    </div>

<div id="ydre">
    <div id="indre">
            <script type="text/javascript">
                for(var i=0;i<=100;i++){
                    document.write(i+"<br />");
                }
            </script>

    </div>
</div>
    <div class="knap" onMouseOver="setTrue();scrollNed();" onMouseOut="setFalse();">
        Ned
    </div>
</body>
</html>
Avatar billede mortenbock Nybegynder
03. maj 2006 - 08:38 #4
Hvor ændrer du hastigheden af scroll'en?
Avatar billede psykochicken Nybegynder
03. maj 2006 - 09:09 #5
Ved at ændre antal pixel pr. gentagelse og pausen mellem gentagelserne som her:

<script type="text/javascript">
var indre, ydre, maxned, betingelse = false, i = 0;

function setFalse(){
        betingelse = false;
}
function setTrue(){
        betingelse = true;
}

function init(){
    ydre = document.getElementById("ydre");
    indre = document.getElementById("indre");
    maxned = ydre.offsetHeight-indre.offsetHeight;
}

// Rediger hastighed her:
step = 5; // antal pixel pr. gentagelse
delay = 10; // pause mellem gentagelser i milisekunder

function scrollOp(){
    if(indre.offsetTop<0 && betingelse){
        indre.style.top = (indre.offsetTop +  step) + "px";
        window.setTimeout("scrollOp();", delay);
    }
}
function scrollNed(){
    if(indre.offsetTop>maxned && betingelse){
        indre.style.top = (indre.offsetTop - step) + "px";
        window.setTimeout("scrollNed();", delay);
    }
}
</script>

/psc
Avatar billede webstuff Nybegynder
08. maj 2006 - 08:32 #6
Mange tak for point - selvom psykochicken nok burde have halvdelen...
skal jeg oprette et spørgsmål til dig psykochicken?
Avatar billede psykochicken Nybegynder
08. maj 2006 - 22:28 #7
nej tak - jeg kom jo kun med en lille tilføjelse ;o)
Avatar billede webstuff Nybegynder
09. maj 2006 - 18:57 #8
helt i orden... Vi kan altid udligne en anden gang ;o)
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