2018-2020 शुद्ध जेएस:
तत्व को स्क्रॉल करने का एक बहुत ही सुविधाजनक तरीका है:
el.scrollIntoView({
behavior: 'smooth', // smooth scroll
block: 'start' // the upper border of the element will be aligned at the top of the visible part of the window of the scrollable area.
})
लेकिन जहां तक मैं समझता हूं कि उनके पास नीचे दिए गए विकल्पों जैसा अच्छा समर्थन नहीं है।
विधि के बारे में अधिक जानें।
यदि यह आवश्यक है कि तत्व शीर्ष में है:
const element = document.querySelector('#element')
const topPos = element.getBoundingClientRect().top + window.pageYOffset
window.scrollTo({
top: topPos, // scroll so that the element is at the top of the view
behavior: 'smooth' // smooth scroll
})
कोडपेन पर प्रदर्शन उदाहरण
यदि आप चाहते हैं कि तत्व केंद्र में हो:
const element = document.querySelector('#element')
const rect = element.getBoundingClientRect() // get rects(width, height, top, etc)
const viewHeight = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);
window.scroll({
top: rect.top + rect.height / 2 - viewHeight / 2,
behavior: 'smooth' // smooth scroll
});
कोडपेन पर प्रदर्शन उदाहरण
सहयोग:
वे लिखते हैं कि scroll
जैसी ही विधि है scrollTo
, लेकिन समर्थन बेहतर दिखाता है scrollTo
।
विधि के बारे में अधिक
<a href="#anchorName">link</a>