使用原生 CSS 实现轮播
提示:记录工作中遇到的需求及解决办法
文章目录
- 前言
- 一、核心新特性
- 1. ::scroll-button()
- 2. ::scroll-marker()
- 二、基础实现步骤
- 1. 创建滚动容器
- 2. 添加滚动按钮
- 3. 集成滚动标记
- 三、高级功能
- 1. 滚动驱动动画
- 2. 状态查询
- 3. 响应式布局
- 四、展示
前言
最新!原生CSS也可以实现轮播图了,无需JavaScript!
从 Chrome 135 开始,开发者可以使用 CSS Overflow 5 规范中的新功能来创建滚动和轮播效果(图1~3),而无需使用 JavaScript。这主要通过全新的 ::scroll-button() 和 ::scroll-marker() 功能来实现。
☀️ ::scroll-button():自动生成滚动控制按钮 (上/下/左/右),用于触发滚动容器的滚动行为。
☀️ ::scroll-marker():自动生成导航标记 (如指示点或标签),用于快速跳转到特定滚动位置。
一、核心新特性
1. ::scroll-button()
浏览器原生提供的滚动按钮:
.carousel {/* 添加左右滚动按钮 */&::scroll-button(left){content:"←"; // "向左滚动"}&::scroll-button(right){content: "→"; // "向右滚动"}
}
- 自动处理交互状态(禁用/激活)
- 默认滚动容器长度的 85%
- 支持自定义样式和焦点效果
2. ::scroll-marker()
滚动标记导航系统:
.carousel {scroll-marker-group: after; /* 标记容器位置 */> li::scroll-marker {content