当前位置:首页 > 技术 > 三行css代码,实现页面吸附滚动效果

三行css代码,实现页面吸附滚动效果

技术 197

CSS scroll-snap:让滚动变得丝滑又有趣!

如果你想让你的图片、卡片、内容区在滚动时自动对齐,像磁铁一样吸附到位?那你一定不能错过 CSS 的 scroll-snap 系列属性!

下面先上效果图


效果很明显,只需要轻轻一划;每张图片都会“啪”地吸附到容器顶部

核心代码

其实代码很简单,主要就三个css属性,所以我说是三行css代码:

  • scroll-snap-type: y mandatory; /* 纵向强制吸附 */

  • scroll-snap-align: start; /* 每张图片吸附到顶部 */

  • scroll-snap-stop: always /* 不会跳过图片 */

要注意的是第一个属性是写给父元素的;下面两个是给子元素的,如下:

<div class="carousel">
  <img src="..." />
    <img src="..." />
      ...
</div>
.carousel {
  overflow: auto;
  display: flex;  
  flex-direction: column; /* 纵向排列 */  
  scroll-snap-type: y mandatory; /* 纵向强制吸附 */
}
.carousel img {  
  height: 240px;  
  scroll-snap-align: start; /* 每张图片吸附到顶部 */  
  scroll-snap-stop: always; /* 不会跳过图片 */
  }

scroll-snap 相关属性全解

scroll-snap-type

  • 作用:定义容器的滚动方向和吸附行为

  • 常用写法

    • scroll-snap-type: x mandatory; 横向强制吸附

    • scroll-snap-type: y proximity; 纵向临近吸附

  • 小贴士:mandatory 表示必须吸附proximity 则是“靠得近才吸”。

scroll-snap-align

  • 作用:定义子元素在滚动时如何对齐到容器

  • 常用写法:

    • scroll-snap-align: start; 吸附到容器起始边

    • scroll-snap-align: center; 吸附到容器中间

scroll-snap-stop

  • 作用:防止用户快速滑动时跳过吸附点

  • 常用写法:

    • scroll-snap-stop: always;每次滚动都必须停在吸附点

还有这些相关属性

  • scroll-padding:定义吸附时的内边距

  • scroll-margin:定义子元素吸附时的外边距


scroll-snap 在实际工作中的妙用

  • 图片/卡片轮播

    移动端、H5、App 内常见的图片轮播、卡片滑动,scroll-snap 让交互更自然。
  • 多段内容阅读

    长文档、分章节内容,用户滚动时自动对齐到每一节,阅读体验大提升。
  • 数据看板/仪表盘

    横向或纵向滚动的图表、数据块,scroll-snap 让切换更顺畅。
  • 自定义滑动菜单

    比如底部 Tab、顶部导航,滑动时自动吸附到选项。

总结

scroll-snap 就像给滚动加了“磁铁”,让你的页面交互更高级、更顺滑。让你用纯 CSS 实现原本需要 JS 的复杂滚动吸附效果,性能更好,代码更优雅!


推荐阅读
深入理解JavaScript异步错误处理:从Promise机制到async/await最佳实践。
一个超好用的配色网站。
记一次微信测试公众号开发部署内网穿透小笔记。
程序员。
人工智能。