很多时候我们在做移动端的时候会有菜单吸附的需求,通常我们都是使用 css + js 来实现的,现在我们用纯 css 来实现一下。
CSS Scroll Snap (css滚动捕捉)
允许你在用户滚动后所动特定的元素或位置
外层:
scroll-snap-type
x
mandatory
单个元素:
scroll-snap-align
start
center
end
demo 代码如下:
预览的时候切换到移动端
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.box {
width: 100%;
overflow-x: scroll;
scroll-snap-type: x;
}
.inner {
display: flex;
align-items: center;
flex-wrap: nowrap;
}
.item {
scroll-snap-align: start;
flex-shrink: 0;
width: 100px;
line-height: 50px;
text-align: center;
background-color: rgb(116, 226, 140);
color: #fff;
border-right: 2px solid rgb(155, 42, 42);
}
</style>
</head>
<body>
<div class="box">
<ul class="inner">
<li class="item">菜单一</li>
<li class="item">菜单二</li>
<li class="item">菜单三</li>
<li class="item">菜单四</li>
<li class="item">菜单五</li>
<li class="item">菜单六</li>
<li class="item">菜单七</li>
<li class="item">菜单八</li>
<li class="item">菜单九</li>
</ul>
</div>
</body>
</html>