Ergebnis 1 bis 4 von 4
Like Tree1Likes
  • 1 Post By kkapsner

Thema: Auto-Scroller

  1. #1
    broiler1985 ist offline Grünschnabel
    registriert
    17-08-2016
    Beiträge
    6

    Auto-Scroller

    Hi!

    Bin neu hier, also erst mal "Hallo an alle!". Ebenfalls neu bin ich bei JavaScript .

    Mein Problem:
    Ich habe eine Seite, in der Mitte ist ein Div, in selbigem befindet sich Text. Der Text ist größer als der Div. Ich würde also gerne den Text im Div scrollen.
    Ich habe mir schon die Finger wundgegoogelt, finde aber einfach nicht das, was ich brauche.

    z.B. dieses hier:

    Code:
    function scrollDiv_init() {
    	DivElmnt = document.getElementById('content');
    	ReachedMaxScroll = false;
    	
    	DivElmnt.scrollTop = 0;
    	PreviousScrollTop  = 0;
    	
    	ScrollInterval = setInterval('scrollDiv()', ScrollRate);
    }
    
    function scrollDiv() {
    	
    	if (!ReachedMaxScroll) {
    		DivElmnt.scrollTop = PreviousScrollTop;
    		PreviousScrollTop++;
    		
    		ReachedMaxScroll = DivElmnt.scrollTop >= (DivElmnt.scrollHeight - DivElmnt.offsetHeight);
    	}
    	else {
    		ReachedMaxScroll = (DivElmnt.scrollTop == 0)?false:true;
    		
    		DivElmnt.scrollTop = PreviousScrollTop;
    		PreviousScrollTop--;
    	}
    }
    Das funktioniert auch, der Inhalt des Divs scrollt hoch, und runter. Ich hätte allerdings gerne eine Pause zwischen den Vorgängen.
    Also Runterscrollen, Pause, Hochscrollen, Pause

    Ich bekomme aber einfach die Pause nicht hin.. vielleicht habe ich auch gerade ein Brett vor dem Kopf und viellecht ist die Frage auch ziemlich dumm.. kann mir jemand helfen?

    Danke!
    Geändert von mikdoe (18-08-2016 um 20:35 Uhr) Grund: Gelöst

  2. #2
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.760

    AW: Auto-Scroller

    So wie dein Code jetzt ist, scrollt der nur einmal runter und wieder rauf. Soll das dann aufhören?
    Zu deinem Problem mit der Pause: wenn du mit Interval arbeiten willst, musstest du das beim Erreichen des Endes dieses mit window.clearInterval() stoppen und ein Timeout setzten, das das wieder startet. Deswegen würde ich da gleich mit window.setTimeout() arbeiten.

    PS: window.setInterval() sollte man als ersten Parameter keinen String, sondern eine Funktionsreferenz übergeben. In deinem Fall also ScrollInterval = setInterval(scrollDiv, ScrollRate);
    PPS: Du hast nur globale Variablen. Das ist nicht gut und auch gar nicht nötig.

    Code:
    <!DOCTYPE html>
    
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <title>Fenstertitel</title>
    <style type="text/css">
    div {
    	height: 20px;
    	width: 100px;
    	overflow: auto;
    }
    </style>
    </head>
    <body>
    <div>ljdsa föakjsd fla jflkjahf akj via fkjas vijabd falkjd fanf öoajd flkaj föka vöakj föalkjfd laöknv öoai ösa n</div>
    <script type="text/javascript">
    (function(){
    	var div = document.getElementsByTagName("div")[0];
    	var direction = 1;
    	function scroll(){
    		var oldScroll = div.scrollTop;
    		div.scrollTop += direction;
    		if (div.scrollTop === oldScroll){
    			direction *= -1;
    			window.setTimeout(scroll, 1000);
    		}
    		else {
    			window.setTimeout(scroll, 20);
    		}
    	}
    	scroll();
    }());
    </script>
    </body>
    </html>
    broiler1985 likes this.

  3. #3
    broiler1985 ist offline Grünschnabel
    registriert
    17-08-2016
    Beiträge
    6

    AW: Auto-Scroller

    Vielen Dank für die Hilfe! Mein Problem ist damit gelöst

  4. #4
    Avatar von kkapsner
    kkapsner ist offline Super Moderator
    registriert
    28-03-2008
    Beiträge
    17.760

    AW: Auto-Scroller

    Zitat Zitat von broiler1985 Beitrag anzeigen
    Vielen Dank für die Hilfe!
    Bitte - gern geschehen.

Ähnliche Themen

  1. Layer Scroller (auto) + Reload
    Von tipetan im Forum JavaScript
    Antworten: 2
    Letzter Beitrag: 11-11-2009, 09:39
  2. div scroller
    Von pevo im Forum Allgemeines
    Antworten: 2
    Letzter Beitrag: 01-07-2004, 15:41
  3. CSS: clip:rect(auto, auto, auto, auto)
    Von ABNetworks.DE im Forum Allgemeines
    Antworten: 3
    Letzter Beitrag: 13-02-2003, 17:42
  4. Layer Scroller (auto) horizontal?
    Von hupfer im Forum Allgemeines
    Antworten: 0
    Letzter Beitrag: 30-01-2002, 11:25
  5. Scroller
    Von BigMage im Forum JavaScript
    Antworten: 0
    Letzter Beitrag: 21-11-2001, 20:09

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •