SS scroll-snap:讓滾動變得絲滑又有趣!
如果你想讓你的圖片、卡片、內(nèi)容區(qū)在滾動時(shí)自動對齊,像磁鐵一樣吸附到位?那你一定不能錯過 CSS 的 scroll-snap 系列屬性!
下面先上效果圖
效果很明顯,只需要輕輕一劃;每張圖片都會“啪”地吸附到容器頂部
核心代碼
其實(shí)代碼很簡單,主要就三個(gè)css屬性,所以我說是三行css代碼:
scroll-snap-type: y mandatory; /* 縱向強(qiáng)制吸附 */
scroll-snap-align: start; /* 每張圖片吸附到頂部 */
scroll-snap-stop: always /* 不會跳過圖片 */
要注意的是第一個(gè)屬性是寫給父元素的;下面兩個(gè)是給子元素的,如下:
<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 相關(guān)屬性全解
scroll-snap-type
- 作用:定義容器的滾動方向和吸附行為。
- 常用寫法
scroll-snap-type: x mandatory; 橫向強(qiáng)制吸附
scroll-snap-type: y proximity; 縱向臨近吸附
- 小貼士:
mandatory
表示必須吸附,proximity
則是“靠得近才吸”。
scroll-snap-align
- 作用:定義子元素在滾動時(shí)如何對齊到容器。
- 常用寫法:
scroll-snap-align: start; 吸附到容器起始邊
scroll-snap-align: center; 吸附到容器中間
scroll-snap-stop
- 作用:防止用戶快速滑動時(shí)跳過吸附點(diǎn)。
- 常用寫法:
scroll-snap-stop: always;每次滾動都必須停在吸附點(diǎn)
還有這些相關(guān)屬性
scroll-padding:定義吸附時(shí)的內(nèi)邊距
scroll-margin:定義子元素吸附時(shí)的外邊距
scroll-snap 在實(shí)際工作中的妙用
- 圖片/卡片輪播移動端、H5、App 內(nèi)常見的圖片輪播、卡片滑動,scroll-snap 讓交互更自然。
- 多段內(nèi)容閱讀長文檔、分章節(jié)內(nèi)容,用戶滾動時(shí)自動對齊到每一節(jié),閱讀體驗(yàn)大提升。
- 數(shù)據(jù)看板/儀表盤橫向或縱向滾動的圖表、數(shù)據(jù)塊,scroll-snap 讓切換更順暢。
- 自定義滑動菜單比如底部 Tab、頂部導(dǎo)航,滑動時(shí)自動吸附到選項(xiàng)。
總結(jié)
scroll-snap 就像給滾動加了“磁鐵”,讓你的頁面交互更高級、更順滑。讓你用純 CSS 實(shí)現(xiàn)原本需要 JS 的復(fù)雜滾動吸附效果,性能更好,代碼更優(yōu)雅!
閱讀原文:原文鏈接
該文章在 2025/7/7 11:36:11 編輯過