Scrolle immer ein div-Element und nicht die Seite selbst

9

Ich habe ein Seitenlayout mit einem inneren <div id="content"> -Element, das die wichtigen Sachen auf der Seite enthält. Der wichtige Teil über das Design ist:

%Vor%

Wenn der enthaltene Text jetzt größer als 300 px ist, muss ich in der Lage sein, einen Bildlauf durchzuführen. Ist es möglich, die <div> zu scrollen, auch wenn die Maus nicht über das Element schwebt (die Pfeiltasten sollten auch funktionieren)?

Beachten Sie, dass ich das 'globale' Scrolling nicht deaktivieren möchte: Es sollte zwei Scrollbars auf der Seite geben, die globale Scrollbar und die Scrollbar für <div> .

Das einzige, was sich ändert, ist, dass das innere <div> immer scrollt, wenn es nicht mehr verschoben werden kann (in diesem Fall sollte die Seite scrollen).

Ist das irgendwie möglich?

Bearbeiten

Ich denke, das Problem war ein wenig verwirrend, also füge ich eine Sequenz hinzu, wie ich es gerne hätte. (Khez hat bereits einen Proof-of-Concept geliefert.)

Das erste Bild zeigt die Seite beim Öffnen.

Nun sitzt die Maus in der angegebenen Position und scrollt und was passieren soll ist das

  • Zuerst scrollt das innere div seinen Inhalt (Abb. 2)
  • Das innere Div hat das Scrollen beendet (Abb. 3)
  • Das body-Element scrollt, so dass das div selbst verschoben wird. (Abb. 4)

Ich hoffe, es ist jetzt ein bisschen klarer.

(Bild Danke an gomockingbird.com)

    
Debilski 15.04.2011, 14:22
quelle

6 Antworten

2

Ich denke nicht, dass dies ohne Scripting möglich ist, was bei den zahlreichen Ereignissen, die ein Element scrollen (Klick, Scrollrad, Abwärtspfeil, Leertaste), unordentlich sein kann.

    
alex 15.04.2011, 14:26
quelle
1

Eine Option könnte das jQuery-Scroll-Plugin verwenden. Ich weiß, dass es die Möglichkeit zum Erstellen von Bildlaufleisten auf einem Div. Das einzige, was Sie selbst hinzufügen müssen, ist die Logik, um die Ereignisse zu erfassen, wenn Tastaturtasten gedrückt werden. Schauen Sie sich einfach die Tastencodes für die Pfeiltasten an und lassen Sie das Div nach unten scrollen.

Das Plugin finden Sie hier .

Sie können es so verwenden;

%Vor%     
Rob 15.04.2011 14:47
quelle
1

Hier ist eine Lösung, die funktionieren könnte: (fiddle: Ссылка )

%Vor%

Es ist ein bisschen fehlerhaft, aber es ist ein Anfang: -)

    
Neal 15.04.2011 16:15
quelle
0

Ich glaube, dass Sie dies nur durch die Verwendung von Frames erreichen können.

Frames - W3Schools Referenz

    
Ollie 15.04.2011 14:32
quelle
0

Wenn Sie nur ein fest positioniertes "div" haben möchten und es nur scrollen möchten, könnten Sie vielleicht einen Trick wie:

verwenden

Ссылка

Das Scrollen mit dem Mausrad und allen möglichen Tasten funktioniert wie erwartet. Die Scrollleiste befindet sich nur auf dem Dokumentkörper.

    
Qtax 28.12.2011 11:51
quelle
0

Ich habe eine Lösung gefunden ... Nicht perfekt ... Ссылка .

CSS:

%Vor%

JS (jQuery):

%Vor%

Das Textumbruchproblem kann gelöst werden, indem der gesamte Inhalt in ein div. Es gibt einen weiteren Fehler für den IE-Browser. Wenn die Seite einen mittig ausgerichteten Hintergrund hat, bewegt sie sich bei mouseenter auf #scrolliv

von links nach rechts     
Pavel Tzonkov 18.04.2013 12:00
quelle