Scrolle mit Vue.js zum Ende von div

8

Ich habe eine Vue-Komponente mit mehreren Elementen darin. Ich möchte automatisch zum Ende dieses Elements blättern, wenn eine Methode in der Komponente aufgerufen wird (im Prinzip tun Sie dasselbe wie in Scrolle zum Ende von div? ). Ich habe jedoch nicht den Weg gefunden, das Element in meine Komponente zu bekommen und scrolTop

zu modifizieren

Ich verwende derzeit Vue 2.0.8

    
angrykoala 21.11.2016, 21:54
quelle

4 Antworten

18

Wie ich verstanden habe, ist der gewünschte Effekt, den Sie wünschen, bis zum Ende einer Liste (oder scrollbaren div) zu blättern, wenn etwas passiert (z. B. ein Element wird zur Liste hinzugefügt). Wenn dies der Fall ist, können Sie mit reinem Javascript und den VueJS-Selektoren bis zum Ende eines Containerelements (oder sogar der Seite selbst) blättern.

%Vor%

Ich habe in dieser Geige ein funktionierendes Beispiel gegeben: Ссылка

Jedes Mal, wenn ein Element zur Liste hinzugefügt wird, wird die Liste bis zum Ende gescrollt, um das neue Element anzuzeigen.

Hoffe, das hilft dir.

    
Italo Ayres 22.11.2016, 08:32
quelle
11

Ich habe versucht, die akzeptierte Lösung und es hat nicht funktioniert für mich. Ich benutze den Browser-Debugger und habe herausgefunden, dass die tatsächliche Höhe, die verwendet werden soll, clientHeight ABER ist, die Sie in den updated() Haken setzen müssen, damit die ganze Lösung funktioniert.

%Vor%     
juliangonzalez 14.02.2017 21:57
quelle
1

In der verwandten Frage, die Sie gepostet haben, haben wir bereits einen Weg, dies in einfachem Javascript zu erreichen, also müssen wir nur die js-Referenz auf den Dom-Knoten bringen, den wir scrollen wollen.

Das ref -Attribut kann verwendet werden, um den Verweis auf HTML-Elemente zu deklarieren, um sie in den Komponentenmethoden von vue verfügbar zu machen .

Oder, wenn method in the component ein Handler für ein UI-Ereignis ist und das Ziel mit dem div verknüpft ist, das Sie im Raum scrollen möchten, können Sie einfach Übergeben Sie das Ereignisobjekt zusammen mit Ihren gewünschten Argumenten und führen Sie den Bildlauf wie scroll(event.target.nextSibling) durch.

    
PanJunjie潘俊杰 22.11.2016 07:31
quelle
1

Hier ist ein einfaches Beispiel mit #ref, um zum Ende eines div zu scrollen.

%Vor% %Vor%

Beachten Sie, dass Sie mit ref='messageDisplay' im HTML Zugriff auf das Element über vueContent.$refs.messageDisplay

haben     
capncanuck 15.12.2017 16:46
quelle

Tags und Links