2018-2020 Saf js:
Öğeye kaydırmanın çok uygun bir yolu var:
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.
})
Ama anladığım kadarıyla, aşağıdaki seçenekler gibi iyi bir desteği yok.
Yöntem hakkında daha fazla bilgi edinin.
Elemanın üstte olması gerekiyorsa:
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
})
Codepen'de gösteri örneği
Elemanın merkezde olmasını istiyorsanız:
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
});
Codepen'de gösteri örneği
Destek:
scroll
Aynı yöntemle yazıyorlar scrollTo
, ancak destek daha iyi gösteriyorscrollTo
.
Yöntem hakkında daha fazla bilgi
<a href="#anchorName">link</a>