CSS 滚动优化 scroll-behavior / scroll-snap-

滚动过渡

当用户手动导航或者 CSSOM scrolling API 触发滚动操作时,控制滚动容器的滚动行为

给可滚动容器添加scroll-behavior: smooth,实现平滑滚动

{
    scroll-behavior: smooth;
}

默认
平滑滚动

控制滚动结束位置

scroll-snap-type

scroll-snap-type: none | [ x | y | block | inline | both ] [ mandatory | proximity ]
设置在父级滚动容器中

  • x:捕捉X轴方向上的滚动
  • y:捕捉Y轴方向上的滚动
  • both:同时捕捉x、y 轴方向上的滚动
  • mandatory:滚动结束后元素停在指定位置
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>
ul {
    scroll-snap-type: x mandatory;
}
 
li {
    scroll-snap-align: center;
} 

控制X轴的滚动:scroll-snap-type: x mandatory
在这里插入图片描述
控制Y轴的滚动:scroll-snap-type: y mandatory
在这里插入图片描述
同时控制X、Y轴的滚动:scroll-snap-type: both mandatory
在这里插入图片描述

scroll-snap-align

scroll-snap-align: start | center | end
设置在滚动容器子元素中
控制 当前聚焦的滚动元素 在滚动方向上 相对父容器的对齐方式
在这里插入图片描述
相对于父容器顶部对齐:scroll-snap-align: start
在这里插入图片描述
相对于父容器中心对齐:scroll-snap-align: center
在这里插入图片描述
在这里插入图片描述
相对于父容器底部对齐:scroll-snap-align: end
在这里插入图片描述

scroll-padding

设置在滚动容器中
与scroll-snap-align作用一样,用于精准控制,类似padding

<ul class="snap">
  <li>1</li>
  <li>2</li>
  <li>3</li>
  ...
</ul>  
.snap {
    overflow-x: auto;
    scroll-snap-type: y mandatory;
    scroll-padding-top: 30px;
}
 
li {
    scroll-snap-align: start;
} 

在这里插入图片描述

scroll-margin

设置在滚动容器子元素中
与scroll-snap-align作用一样,用于精准控制,类似margin

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值