2017-02-28 2 views
6

In einer Reactive-App wird eine Methode aufgerufen, um einen bestimmten Knoten wie folgt anzuzeigen.wie Javascript ScrollIntoView glatt machen?

scrollToQuestionNode(id) { 
     const element = document.getElementById(id); 
     element.scrollIntoView(false); 
} 

Die Bildlauf passiert gut, aber die Scroll-Aktion ist ein wenig ruckartig. Wie kann ich es glatt machen? Ich sehe keine Optionen, die ich scrollIntoView für dasselbe geben kann.

+0

Es ist nun von Chrome (von Chrome 61) –

Antwort

11

Dies könnte helfen.

Von mdn Dokumentation scrollIntoView Sie können anstelle von Boolean in Option übergeben.

scrollIntoViewOptions Optional 
A Boolean or an object with the following options: 
{ 
    behavior: "auto" | "instant" | "smooth", 
    block: "start" | "end", 
} 

Sie können einfach Parameter wie folgt übergeben.

scrollToQuestionNode(id) { 
     const element = document.getElementById(id); 
     element.scrollIntoView({block: 'end', behaviour: 'smooth'}); 
} 

Referenz: https://developer.mozilla.org/en/docs/Web/API/Element/scrollIntoView

+2

Dank verschwenderischen unterstützt wird, aber ich es schon versucht. Wie Sie in dem von Ihnen erwähnten Link sehen können, wird scrollIntoViewOptions in Chrome nicht unterstützt (ich finde es seltsam, aber das ist die Realität) –

+0

Das ist seltsam. Benutzt du Jquery? Wenn Sie das tun, dann ist das einfach, sonst müssen Sie vielleicht einen anderen Ansatz wählen. – lavish

+0

Es wird jetzt von Chrome (von Chrome 61) unterstützt –