2017-02-28 11 views
6

एक प्रतिक्रिया ऐप में, मेरे पास एक विशेष नोड को निम्नानुसार देखने के लिए बुलाया जाने वाला एक तरीका है।कैसे जावास्क्रिप्ट scrollIntoView चिकनी बनाने के लिए?

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

स्क्रॉल ठीक होता है, लेकिन स्क्रॉल एक्शन थोड़ा झटकेदार होता है। मैं इसे चिकनी कैसे बना सकता हूं? मुझे कोई विकल्प नहीं दिख रहा है जिसे मैं स्क्रॉल इनव्यूव को इसके लिए दे सकता हूं।

+0

अब यह (क्रोम 61 से) –

उत्तर

11

इससे मदद मिल सकती है।

scrollIntoView के एमडीएन दस्तावेज से आप बूलियन के बजाय विकल्प में पास कर सकते हैं।

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

तो आप बस इस तरह पैरामीटर पास कर सकते हैं।

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

संदर्भ: https://developer.mozilla.org/en/docs/Web/API/Element/scrollIntoView

+2

धन्यवाद भव्य क्रोम द्वारा समर्थित है, लेकिन मैं पहले से ही यह कोशिश की। जैसा कि आप बताए गए लिंक में देख सकते हैं, स्क्रॉल इनव्यूऑप्शन क्रोम में समर्थित नहीं है (मुझे यह अजीब लगता है, लेकिन वास्तविकता है) –

+0

यह अजीब बात है। क्या आप jquery का उपयोग कर रहे हैं? यदि आप हैं तो यह आसान है अन्यथा एक और दृष्टिकोण लेना पड़ सकता है। – lavish

+0

अब यह क्रोम द्वारा समर्थित है (क्रोम 61 से) –

संबंधित मुद्दे