HTML: Div auto scroll 'down' und manuell 'up'

...komplette Frage anzeigen

4 Antworten

Kannst du das autoscroll down nicht mit einem check-button aktivieren/deaktivieren lassen?

Dann kannst du bei entsprechender scroll up aktion automatisch unchecken lassen.

SeatLeon1999 12.03.2014, 11:04

probiere ich gleich mal aus

Danke

0
SeatLeon1999 12.03.2014, 11:07
@SeatLeon1999

Aber könntest du mir das noch mal erklären, bin noch nicht sehr erfahren... Danke

0
mammonmachine 12.03.2014, 11:34
@SeatLeon1999

ich weiss auch nicht genau, wie ich vorgehen würde..

Am ehesten würde ich das autoscrolldown mit einem checkbutton steuern ( if ) und mit einem Eventhandler bei einem scroll up durch mausrad oder scroll-balken den checkbutton unchecken.

0

Javascript! window.scrollDown(x,y) wenn ich mich entsinne.

Timsuper 12.03.2014, 15:23

Hmm vielleicht wenn nicht Runter gescrollt dann window.scrollDown() 1 mal pro Script.

So nur noch in Code packen würd ich sagen.

0

Wie werden denn die neuen Nachrichten in den Chat gebracht? Per Datenbank?

Wenn ja würde ich in die Funktion, in der auch die neuen Nachrichten geladen werden, den Autoscroll down reinpacken. Dann sollte nur noch automatisch runtergescrollt werden, wenn eine neue Nachricht reinkommt.

SeatLeon1999 12.03.2014, 11:00

Ja mit Firebase

0
Snackpack 12.03.2014, 11:02
@SeatLeon1999

Setz mal ans Ende der Funktion, in welcher die Daten aus der Datenbank geladen werden, die Funktion für den Autoscroll. In der Theorie sollte der Chat dann automatisch nach dem Laden der neuen Nachricht runterscrollen.

0
Snackpack 12.03.2014, 11:15
@SeatLeon1999

Kannst Du ja, Autoscroll down wird dann ja nur aufgerufen, wenn die Nachrichten mit der Datenbank synchronisiert werden. Außer Du führst diese Synchronisierung dauerhaft durch.

Du kannst auch mal versuchen in der Datenbank zu jeder Nachricht einen Zeitstempel hinzuzufügen und dann eine Abfrage zu schreiben, die überprüft, ob eine neue Nachricht vorhanden ist. Wenn diese Abfrage erfüllt ist, wird erst die Synchronisierung aufgerufen, an deren Ende dann ja die Funktion für das automatische Runterscrollen steht.

1
SeatLeon1999 12.03.2014, 11:19
@Snackpack
    var app = angular.module("myapp", ["firebase"]);
          function MyController($scope, $firebase) {
            var ref = new Firebase("https://chat-applikation.firebaseIO.com");
/*Muss das hier hin?*/
            $scope.messages = $firebase(ref);
            $scope.addMessage = function(e) {
              if (e.keyCode != 13) return;
              $scope.messages.$add({from: $scope.name, body: $scope.msg});
              $scope.msg = "";
/*Hier hin?*/
            }
/*oder Hier?*/
          }
0
Snackpack 12.03.2014, 11:07

Wie gesagt, der Autoscroll down sollte dann nur noch durchgeführt werden, wenn die Nachrichten mit der Datenbank synchronisiert werden. Wenn Du diese Synchronisierung nicht dauerhaft durchführst, sollte es funktionieren.

Du kannst auch noch per Zeitstempel prüfen, ob in der Datenbank eine neue Nachricht vorliegt und erst die Synchronisierung aufrufen, wenn diese Abfrage erfüllt ist.

0

Was möchtest Du wissen?