This website mostly serves to present my work as an webdesigner. In my portfolio you will find an overview of my recent projects.

Anleitung zum löschen des Cache: cachemeifyoucan.com

markuslang.com

bigr-solutions.net

musikwerker.de

projekt-misside-guinea.de

feedyourfeeds.com

 

 

Scrolling with JavaScript

Möchte man auf seiner Website auf einer kleinen Fläche viele Informationen unterbringen, so führt selten ein Weg an einer kleineren Schriftart oder unschönen Scrollbalken vorbei. Der hier vorgestellte Code soll eine Alternative dazu darstellen. Der Inhalt wird in ein div gepackt und läßt sich mittels JavaScript zum scrollen bewegen.

Als erstes sollte die notwendige JavaScript-Klasse für das Scrolling eingebunden werden.

  1. function scroll(objElement, intHeight) {
  2.   var self = this;
  3.   this._y = 0;
  4.   objElement.style.top  = "0px";
  5.  
  6.   this.setPosition = function(intPos, y) {
  7.     if (intPos > 0) intPos = 0;
  8.     if (intPos < intHeight - objElement.offsetHeight)
  9.       intPos = intHeight - objElement.offsetHeight;
  10.     this._y = intPos;
  11.     objElement.style.top  = this._y +"px";
  12.   };
  13.  
  14.   this.scrollY = function(y) { this.setPosition(this._y + y, y); };
  15.  
  16.   this.start = function(y) {
  17.     this.scrollTimer = window.setInterval(
  18.       function() { self.scrollY(y); }, 25 );
  19.   };
  20.   this.stop = function() {
  21.     if (this.scrollTimer) window.clearInterval(this.scrollTimer); };
  22. };


Danach ist es notwendig das Objekt, welches den zu scrollenden Inhalt enthält der Klasse "scroll" zu übergeben und damit ein neues Objekt zu erstellen.

  1. var srollObject = null;
  2.  
  3. function initPage() {
  4.   var objElement = document.getElementById('content');
  5.   srollObject = new scroll(objElement, 150);
  6. }
  7.  


Dieser Vorgang wird natürlich erst nach erfolgten Laden der Seite ausgeführt.

  1. <body onload="initPage();">


Über diese zwei Elemente läßt sich das scrollen beeinflussen.

  1. <a href="#" onmouseover="srollObject.start(-4);"
  2.   onmouseout="srollObject.stop();">&or;</a>
  3. <a href="#" onmouseover="srollObject.start(4);"
  4.   onmouseout="srollObject.stop();">&and;</a>


Das vorgestellte Beispiel kann im Browser betrachtet oder heruntergeladen werden.


Update! Über das Skript scroll_xy.js (zip) ist auch ein Scrolling entlang der X- bzw. Y-Achse möglich.

 

8 Responses to “Scrolling with JavaScript”


  1. Dietmar

    Danke für das Scrolling-Script!
    Nach vielen Suchen und Ausprobieren das Beste und Effizienteste.
    Ich habe es mir auch erfolgreich für HORIZONTAL-Scroll abgeändert.

    Könntest Du mir evtl. einen Tipp geben, wie ich zwei unterschiedliche DIVs
    (H-Scroll und V-Scroll) auf einer Seite am besten initialisiere?

    Vielen Dank
    Dietmar


  2. Ronny Engelmann

    Du könntest zwei unterschiedliche Klassen generieren, zum Beispiel “scroll_y” und “scroll_x”.

    Oder über einen Parameter die Klasse steuern und den Parameter dementsprechend beim Aufruf der Methode mit angeben:

    1. srcollObject.start(‘x’, -4)

  3. Dietmar

    Habe es jetzt einmal so realisiert. Scheint auch zu funktionieren… Sollte man es so belassen? Vielen Dank im Voraus!

    1. var srollObject_y = null;
    2. var srollObject_x = null;
    3.  
    4. function initPage() {
    5.   var objElement = document.getElementById(‘content_y’);
    6.   srollObject_y = new scroll(objElement, 150)
    7.                        
    8.  var objElement = document.getElementById(‘content_x’);
    9.  srollObject_x = new scroll_h(objElement, 400);
    10. }

    Ich habe auch einmal eine höhere Geschwindigkeit speziel für “onmousedown” eingestellt. Hier scheint es dann Probleme zu geben, wenn anschließend die “Gegenrichtung” betätigt wird (keine Reaktion mehr).


  4. Ronny Engelmann

    Ich habe das Skript abgeändert und dem Post angefügt. Mit scroll_xy.js kann über zwei unterschiedliche Methoden jeweils ein Scrolling entlang der X- bzw. Y-Achse realisiert werden.

    Die beiden Methoden lauten startX() und startY().

    1. this.startX = function(x) {
    2.   this.scrollTimer = window.setInterval(
    3.     function() { self.scrollX(x); }, 1 );
    4. };
    5.  
    6. this.startY = function(y) {
    7.   this.scrollTimer = window.setInterval(
    8.     function() { self.scrollY(y); }, 1 );
    9. };

  5. markus

    ein nettes feature wäre ein scrollbar zusätzlich bzw. anstelle der pfeile. würde im moment sowas suchen für horizontales scrollen ;)

    viele grüße
    markus


  6. Niels

    Hallo!

    Super Script, einfach und unkompliziert einzubinden, genau das was ich gesucht habe. Leider habe ich einen Bug unter Opera gefunden, mit dem Demotext funktioniert es einwandfrei, aber wenn der Text länger ist ruckelt die Seite und unter der Seite ist jede Menge leer, bei kurzen Text nicht. Hat man sich ganz nach unten gescrollt kann man sich ohne diese Probleme wieder hoch und runterscrollen. Im IE und FF läuft es hingegen mit jeder Textlänge einwandfrei.

    Wie kann man das denn lösen? Wäre für jede Hilfe zur Lösung dankbar, gerne auch per Mail. Danke im vorraus.

    Grüße

    Niels


  7. Falko

    Hallo!

    Ich bin nach einer bald ewigen Suche nach einen geeigneten Script für eine JS-Scrollbar auf Ihre Lösung gefunden und bin richtig begeistert davon. Ich habe auch schon ein wenig damit rumexperimentiert, da ich noch nicht allzuviel Kenntnisse im Umgang von JS habe. Ich bin nun an einem Punkt angekommen, wo ich nicht weiter weiß.

    http://falkonien.de/scroll/example.html

    Ich möchte gern die beiden Scrollpfeile auf der rechten Seite positionieren. Einer oben und einer unten. Ich habe dies versucht, indem ich für beide Pfeile jeweils einen neuen div erstellt habe um sie zu positioniern. Leider hat dies nicht funktioniert.

    Ich weiß das dies kein Forum ist, aber hätten Sie vielleicht eine Lösung für mein Problem???

    Grüße,
    Falko Behr


  8. Java Script Scroller - jswelt - Forum (Javascript, PHP, MySQL, AJAX, Webdesign)

    [...] dann mal Dein Anliegen nach so einem Scroller Google anvertraut. Unter den Beispielen war dieser Scroller, der auch mit Doctype funktioniert. Beispielseite ist dort dabei. Was die Zukunft betrifft, [...]


Leave a Reply