2018-2020 เพียว js:
มีวิธีที่สะดวกมากในการเลื่อนไปที่องค์ประกอบ:
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
})
ตัวอย่างการสาธิตบน Codepen
หากคุณต้องการให้องค์ประกอบอยู่ตรงกลาง:
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
สนับสนุน:
พวกเขาเขียนว่าscroll
เป็นวิธีการเดียวกับแต่การสนับสนุนการแสดงที่ดีขึ้นในscrollTo
scrollTo
เพิ่มเติมเกี่ยวกับวิธีการ
<a href="#anchorName">link</a>