今天這個練習案例,我之前在視訊号上分享過一個類似的,具體請看以下視訊:
如果你還沒有關注我的視訊号的話,請記得關注我的視訊号,以免錯過我與你分享的精彩内容。
而今天這個練習跟之前分享的案例效果有點類似,具體效果如下:
看完了練習效果,我們再來看看它的實作過程。
HTML代碼:
<!DOCTYPE html>
<html>
<head>
<title>【每日一練】70—CSS實作[禁止吸煙]3D文本動畫效果</title>
</head>
<body>
<div class="container">
<div class="cigarette">
<span style="--i:1;"><i>Nooooo</i>Smooooooooking<i>|</i></span>
<span style="--i:2;"><i>Nooooo</i>Smooooooooking<i>|</i></span>
<span style="--i:3;"><i>Nooooo</i>Smooooooooking<i>|</i></span>
<span style="--i:4;"><i>Nooooo</i>Smooooooooking<i>|</i></span>
<span style="--i:5;"><i>Nooooo</i>Smooooooooking<i>|</i></span>
<span style="--i:6;"><i>Nooooo</i>Smooooooooking<i>|</i></span>
<span style="--i:7;"><i>Nooooo</i>Smooooooooking<i>|</i></span>
<span style="--i:8;"><i>Nooooo</i>Smooooooooking<i>|</i></span>
<span style="--i:9;"><i>Nooooo</i>Smooooooooking<i>|</i></span>
<span style="--i:10;"><i>Nooooo</i>Smooooooooking<i>|</i></span>
</div>
<!-- 360/10 = 36deg -->
</div>
</body>
</html>
CSS代碼:
*
{
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: 'poppins';
}
body
{
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
background: #222;
overflow: hidden;
}
.container
{
display: flex;
justify-content: center;
align-items: center;
}
.container .cigarette
{
transform-style: preserve-3d;
animation: animate 15s linear infinite;
}
@keyframes animate
{
0%
{
transform: perspective(1000px) rotateX(0deg) rotate(0deg);
}
100%
{
transform: perspective(1000px) rotateX(360deg) rotate(0deg);
}
}
.container .cigarette span
{
position: absolute;
color: #fff;
font-size: 1.35em;
white-space: nowrap;
text-transform: uppercase;
font-weight: 900;
background: linear-gradient(90deg, transparent, rgba(0,0,0,0.5), transparent);
line-height: 0.76em;
transform-style: preserve-3d;
text-shadow: 0 2px 5px rgba(0,0,0,0.25);
transform: translate(-50%,-50%) rotateX(calc(var(--i) * 36deg)) translateZ(25px);
/* 360 / 10 = 36 */
}
.container .cigarette span i
{
font-style: initial;
color: #ec9535;
}
.container .cigarette span i:first-child:after
{
content: 'l';
text-transform: lowercase;
color: #ccc;
letter-spacing: -1px;
}
.container .cigarette span i:last-child
{
color: #f00;
text-shadow: -4px 0 2px #000,
8px 0 20px #f00,
8px 0 24px #f00,
8px 0 #222,
12px 0 #555,
16px 0 #666,
20px 0 #888,
24px 0 #999;
filter: blur(2px);
}
寫在最後
以上就是今天【每日一練】的全部内容,希望今天的小練習對你有用,如果你覺得有幫助的話,請點贊我,并将它分享給你身邊做開發的朋友,也許能夠幫助到他。
我是楊小愛,我們明天見。