大部分人基本上都会使用JS实现页面的滚动贴合效果,在学习的过程中,偶然发现原生CSS实现滚动贴合效果的方法;
html 代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>滚动贴合</title>
<style>
* {
margin: 0;
padding: 0;
}
.container {
width: 1200px;
height: 100vh;
overflow-y: scroll;
scroll-snap-type: y mandatory;
margin: auto;
}
.container .item {
width: 100%;
height: 100%;
padding: 30px;
border: 1px dashed #cccccc;
box-sizing: border-box;
scroll-snap-align: start;
border-radius: 10px;
background: #f9f9f9;
margin-bottom: 16px;
}
.container .item:last-child {
margin-bottom: 0;
}
.container .item img {
width: 100%;
height: 100%;
object-fit: cover;
border: 1px solid #ffffff;
transition: all 0.4s;
}
.container .item:hover img {
box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
border-radius: 10px;
}
</style>
</head>
<body>
<div class="container">
<div class="item">
<img src="https://t7.baidu.com/it/u=4162611394,4275913936&fm=193&f=GIF" alt="">
</div>
<div class="item">
<img src="https://t7.baidu.com/it/u=949373678,2089110629&fm=193&f=GIF" alt="">
</div>
<div class="item">
<img src="https://t7.baidu.com/it/u=2196842896,2809445370&fm=193&f=GIF" alt="">
</div>
<div class="item">
<img src="https://t7.baidu.com/it/u=3779521506,3594871140&fm=193&f=GIF" alt="">
</div>
<div class="item">
<img src="https://t7.baidu.com/it/u=3360446468,3126444958&fm=193&f=GIF" alt="">
</div>
<div class="item">
<img src="https://t7.baidu.com/it/u=2749005241,3756993511&fm=193&f=GIF" alt="">
</div>
<div class="item">
<img src="https://t7.baidu.com/it/u=2928560209,826823219&fm=193&f=GIF" alt="">
</div>
<div class="item">
<img src="https://t7.baidu.com/it/u=3780014697,4013718301&fm=193&f=GIF" alt="">
</div>
<div class="item">
<img src="https://t7.baidu.com/it/u=832449998,3859178369&fm=193&f=GIF" alt="">
</div>
<div class="item">
<img src="https://t7.baidu.com/it/u=1710836566,438775692&fm=193&f=GIF" alt="">
</div>
</div>
</body>
</html>