从超级无敌水帖计划(随缘更新)继续讨论:
本打算周末把 Stripe Done 的动画玩一玩的,发现在动画之前,还有一个扫光动画,且与计划中的另一个有重合,所以就先把这个效果先试了一下
效果
要点
使用伪元素来绘制需要的光效,改变背景的偏移量或是背景位置来实现动画效果
代码
内容简单,就直接贴代码了,一看便知
<div class="container">
<span>订阅</span>
</div>
因文本需要不受光效影响,所以单独包裹并提升层级
body {
height: 100vh;
display: grid;
place-content: center;
}
.container {
width: 400px;
height: 60px;
background: rgb(16, 163, 117);
border-radius: 8px;
position: relative;
overflow: hidden;
display: grid;
place-content: center;
cursor: pointer;
user-select: none;
span {
color: #fff;
letter-spacing: 1px;
font-size: 20px;
z-index: 1;
}
&::after {
content: "";
width: 150%;
height: 100%;
position: absolute;
top: 0;
left: 0;
background: linear-gradient(
to right,
transparent 0%,
rgb(58, 188, 140) 50%,
transparent 100%
);
animation: saoguang 3s ease infinite;
}
}
@keyframes saoguang {
0% {
transform: translateX(-100%);
}
100% {
transform: translateX(100%);
}
}
其实原理与五彩背景动画相似,以前 @mack 的小尾巴那种,大差不差。
你也可以直接在 CODEPEN 预览
一不小心又水一篇,美滋滋
姊妹篇: