-
方法一每次滚动高度要有规律
效果,平滑效果不错,就是每次滑动是需要有规律的,不然跳不到想跳的地方
clickText('1')、clickText('2') ,name传值1,2,3,每次滚动滚动条里顶部为0、520、1100
let options = {
top: 0,
behavior: 'smooth'
}
function clickText(name){
options.top = 520*(Number(name)-1)
window.scrollTo(options)
}
-
方法二锚点,跳到id="xx"用#xx表示
效果,直接跳到那个地方,很是准确,但是滑动生硬
clickTwo(‘t1’)、clickTwo('t2),t1、t2是传的锚点的id名称
<div id="t1">点击后,我的滚动条会跳到这里</div>,
function clickTwo(name){
window.location.hash = "#"+name
}
-
方法三,获取元素离滚动条顶部距离,再做滚动平滑
距离是获取到的,精准, 效果平滑也不错
clickThree(name)的name传的是锚点的id名称
function clickThree(name){
let btn = document.getElementById(name)
let options = {
top: 0,
behavior: 'smooth'
}
options.top = btn.offsetTop
window.scrollTo(options)
}
-
方法四:锚点加动画
效果平滑不错
clickfour(name)的name传的是锚点的id名称
function clickfour(name){
document.querySelector('#'+name).scrollIntoView({
block: 'start',
behavior: 'smooth'
});
}