html代码:
<div class="g-scroll" id="g-scroll"></div>
<div class="g-wrapper">
<div class="g-mask"></div>
<div class="g-inner">
<div class="g-item">Lorem ipsum dolor sit amet consectetur adipisicing elit.</div>
<div class="g-item">Lorem ipsum dolor sit amet consectetur adipisicing elit.</div>
<div class="g-item">Lorem ipsum dolor sit amet consectetur adipisicing elit.</div>
<div class="g-item">Lorem ipsum dolor sit amet consectetur adipisicing elit.</div>
<div class="g-item">Lorem ipsum dolor sit amet consectetur adipisicing elit.</div>
<div class="g-item">Lorem ipsum dolor sit amet consectetur adipisicing elit.</div>
<div class="g-item">Lorem ipsum dolor sit amet consectetur adipisicing elit.</div>
<div class="g-item">Lorem ipsum dolor sit amet consectetur adipisicing elit.</div>
<div class="g-item">Lorem ipsum dolor sit amet consectetur adipisicing elit.</div>
<div class="g-item">Lorem ipsum dolor sit amet consectetur adipisicing elit.</div>
<div class="g-item">Lorem ipsum dolor sit amet consectetur adipisicing elit.</div>
<div class="g-item">Lorem ipsum dolor sit amet consectetur adipisicing elit.</div>
</div>
</div>
css3代码:
@property --phase {
syntax: '';
inherits: false;
initial-value: 15px;
}
html, body {
width: 100%;
height: 100%;
display: flex;
}
.g-scroll {
width: 100%;
height: 1000vh;
position: relative;
}
.g-wrapper {
position: fixed;
top: -20%;
width: 100vw;
height: 100vh;
perspective: 200px;
transform-style: preserve-3d;
}
.g-mask {
position: fixed;
width: 100vw;
height: 120vh;
backdrop-filter: blur(5px);
transform: translateZ(0);
}
.g-inner {
position: relative;
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 10px;
transform-style: preserve-3d;
transform: translateY(calc(-50% + 100px)) translateZ(var(--phase)) rotateX(90deg);
transform-origin: bottom center;
animation-name: move;
animation-duration: 1s;
animation-timeline: box-move;
}
@scroll-timeline box-move {
source: selector("#g-scroll");
orientation: "vertical";
}
.g-item {
width: 300px;
height: 200px;
padding: 8px;
box-sizing: border-box;
color: #fff;
background: #000;
transform: rotateX(-90deg);
}
@keyframes move {
0% {
--phase: 0;
}
100% {
--phase: calc(100vh + 100px);
}
}
以上是编程学习网小编为您介绍的“css3利用视差实现做一个酷炫交互动效”的全面内容,想了解更多关于 前端知识 内容,请继续关注编程基础学习网。
沃梦达教程
本文标题为:css3利用视差实现做一个酷炫交互动效
猜你喜欢
- 前端必会的Webpack优化技巧 2024-01-04
- HTML5在线预览PDF的示例代码 2022-09-16
- JavaScript制作简单网页计算器 2022-10-22
- CSS3 滤镜 webkit-filter详细介绍及使用方法 2024-02-24
- ajax快速解决参数过长无法提交成功的问题 2023-01-26
- CSS 使用radial-gradient 实现优惠券样式 2024-02-25
- vue数据双向绑定原理 2023-10-08
- 前端vue按1920*1080设计图的页面适配屏幕缩放并适配4K屏详解 2023-12-26
- CSS3控制HTML元素动画效果 2024-01-03
- vue+springboot图片上传和显示的示例代码 2023-12-24