Avatar billede joch Nybegynder
02. august 1999 - 14:15 Der er 4 kommentarer og
1 løsning

Scrolling

Hvordan laver jeg en automatisk scrolling, når jeg trykker på en tekst?
Avatar billede hirtshals Nybegynder
02. august 1999 - 15:24 #1
Jeg har haft samme problem, og var ikke HAJ nok til at programmere det selv, men fandt dette script der gør trickset

<script language="JavaScript1.2">
/********************************************************************************
This script is made by and copyrighted to Thomas Brattli at www.bratta.com
Visit for more great scripts.
This may be used freely as long as this msg is intact!
********************************************************************************
Browsercheck:*/
ie=document.all?1:0
n=document.layers?1:0

/*********************************************************************************
These are the variables you have to set:
*********************************************************************************/

//The speed of the timeout between each scroll.
timSpeed=50

//The height of the container (change this when it scrolls to much or to little)
contHeight=100

/*********************************************************************************
This is the object constructor function, which applies
methods and properties to the crossbrowser layer object
*********************************************************************************/
function makeScrollObj(obj,nest){
    nest=(!nest) ? '':'document.'+nest+'.'                                       
    this.css=(n) ? eval(nest+'document.'+obj):eval('document.all.'+obj+'.style')                           
    this.scrollHeight=n?this.css.document.height:eval('document.all.'+obj+'.offsetHeight')                           
    this.top=b_gettop                                       
    return this
}
//Getting the top for the top method
function b_gettop(){
    var gleft=(n) ? eval(this.css.top):eval(this.css.pixelTop);
    return gleft;
}
//Variables
var scrollTim;
var active=0;
/*********************************************************************************
The scroll function. Checks what way to scroll and checks if the
layer is not already on top or bottom.
*********************************************************************************/
function scroll(speed){
    clearTimeout(scrollTim)
    way=speed>0?1:0
    if((!way && oScroll[active].top()>-oScroll[active].scrollHeight+contHeight) || (oScroll[active].top()<0 && way)){
        oScroll[active].css.top=oScroll[active].top()+speed
        scrollTim=setTimeout("scroll("+speed+")",timSpeed)
    }
}
//Clears the timeout so the scroll stops, this is called onmouseout.
function noScroll(){
    clearTimeout(scrollTim)
}
/*********************************************************************************
Changes the active layer. Hides the one that's visible and
shows the "new" one. Also set's the new layers top to
0 so it starts at top.
*********************************************************************************/
function changeActive(num){
    oScroll[active].css.visibility='hidden'
    active=num
    oScroll[active].css.top=0
    oScroll[active].css.visibility='visible'
}
/*********************************************************************************
Initilizes the page, makes a oScroll Array and calls the object constructor.
Here you can add as many scrollObjects as you want
*********************************************************************************/
function scrollInit(){
    oScroll=new Array()
    oScroll[0]=new    makeScrollObj('divScroll1','divCont')
    oScroll[1]=new    makeScrollObj('divScroll2','divCont')
    oScroll[2]=new    makeScrollObj('divScroll3','divCont')
    oScroll[3]=new    makeScrollObj('divScroll4','divCont')
    oScroll[0].css.visibility='visible'
}
/*********************************************************************************
Executes the scrollInit function on pageload.
*********************************************************************************/
onload=scrollInit;
//-->
</script>
<style>
#divControl{position:absolute; width:250; font-family:arial; left:50; top:80; font-size:10pt; }
#divCont{position:absolute; top:135; left:50; clip:rect(0,250,150,0); height:150; width:250}
.clScroll{position:absolute; top:0; font-size:10pt; left:0; font-family:arial; visibility:hidden}
</style>

2. Cut and paste this into the BODY of your document:

<div id="divControl">
    <a href="#" onclick="changeActive(0)">Page 1</a>
    <a href="#" onclick="changeActive(1)">Page 2</a>
    <a href="#" onclick="changeActive(2)">Page 3</a>
    <a href="#" onclick="changeActive(3)">Page 4</a>
    <br><br>
    <a href="#" onmouseover="scroll(5)" onmouseout="noScroll()">up</a>
    <a href="#" onmouseover="scroll(-5)" onmouseout="noScroll()">down</a>
</div>
<div id="divCont">
    <div id="divScroll1" class="clScroll">
        This is "page" 1, here you place some content.
        You should place more content then this
        or it won't scroll..blablablabl<br>
        <br>text text dummy texttext text dummy texttext text dummy text<br>
        <br>text text dummy text text text dummy text text text dummy text <br>
    </div>
   
    <div id="divScroll2" class="clScroll">
        This is "page" 2...........
        <br>text textdummy texttext text dummy texttext text dummy text<br>
        <br>text text dummy text text text dummy text text text dummy text <br>
        text text dummy texttext text dummy texttext text dummy text<br>
        <br>text text dummy text text text dummy text text text dummy text <br>
        <br>text textdummy texttext text dummy texttext text dummy text<br>
        <br>text text dummy text text text dummy text text text dummy text <br>
        text text dummy texttext text dummy texttext text dummy text<br>
        <br>text text dummy text text text dummy text text text dummy text <br>
    </div>

    <div id="divScroll3" class="clScroll">
        This is "page" 3...........(can't scroll this one, to little content)
        <br>
    </div>

    <div id="divScroll4" class="clScroll">
        Page 4
        text text dummy texttext text dummy texttext text dummy text<br>
        <br>ext text dummy texttext text dummy texttext text dummy text<br>
        <br>text text dummy texttext text dummy texttext text dummy text<br>
        <br>text text dummy texttext text dummy texttext text dummy text<br>
        <br>text text dummy texttext text dummy texttext text dummy text<br>
    </div>
</div>
Avatar billede hirtshals Nybegynder
02. august 1999 - 15:26 #2
Det findes også i en mere simpel funktion

Kildetekst

---------------------- Klip og indsæt i dokument hoved (<HEAD>) -------------------------

<SCRIPT Language="JavaScript"><!--
function scrollit() {
for (I=1; I<=600; I++){parent.scroll(1,I)}
}
//-->
</SCRIPT>

-------------------------------------- Slut Klip ----------------------------------------------



---------------------- Klip og indsæt i dokument krop (<BODY>) -------------------------

<form> <input type=button value="Scroll Nu!" onClick="scrollit()">
</form>

-------------------------------------- Slut Klip ----------------------------------------------
Avatar billede joch Nybegynder
02. august 1999 - 15:36 #3
Tak for det. Jeg har ikke afprøvet scriptet men jeg stoler på dig.
Avatar billede hirtshals Nybegynder
02. august 1999 - 16:02 #4
Begge scripts virker på min maskine, hvis du får problemer, så skriv :-)
Avatar billede cyberesben Nybegynder
02. august 1999 - 20:02 #5
joch, til en anden gang så husk at oprette spørgsmålet i javascript og ikke i java
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
Kurser inden for grundlæggende programmering

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