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

文章介绍了如何使用HTML锚点链接结合`scroll-behavior:smooth;`实现页面内容的平滑跳转,以及利用JavaScript的`offsetTop`和`scrollTo`方法达到相同效果。这两种方式都可以让页面在点击链接时平滑过渡到指定位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值