点击按钮平滑至指定位置 -- 楼层效果

1.锚点链接:

使用锚点链接实现点击跳转到指定位置,同时在html上添加scroll-behavior:smooth;就可以在锚点切换时实现平滑效果:

设置锚点:

<-- 用id设置锚点位置 -->
<div id="one">
    我是测试文字
</div>

<-- 用a标签链接绑定跳转 -->
<a href="#one">点我跳转</a>

在css中设置平滑效果: 

html{
     scroll-behavior:smooth;
}

2.js实现:

同时有可以使用js实现平滑过渡到指定地点的效果,可以使用offsetTop配合scrollTo实现:

// liNodes是获取的点击按钮节点集合
// sectionNode是对应楼层的节点集合
liNodes.forEach(function(v , i){ 
    v.addEventListener('click' , function(){
        // sectionNode[i]是点击按钮对应索引的楼层
        // sectionNode[i].offsetTop是对应楼层距离offsetParent顶部的距离
        const offsetTop = sectionNode[i].offsetTop; 
        scrollTo({
            top:offsetTop, // 赋值到顶部
            behavior:'smooth', // 平滑过渡
        })
    })
})

其中的offsetTop就是元素到offsetParent顶部的距离,这里的offsetParent是距离元素最近的一个具有定位(relative, absolute, fixed)的祖先元素,如果没有offsetParent就是body.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值