天天看點

【每日一練】70—CSS實作[禁止吸煙]3D文本動畫效果

【每日一練】70—CSS實作[禁止吸煙]3D文本動畫效果

今天這個練習案例,我之前在視訊号上分享過一個類似的,具體請看以下視訊:

如果你還沒有關注我的視訊号的話,請記得關注我的視訊号,以免錯過我與你分享的精彩内容。

而今天這個練習跟之前分享的案例效果有點類似,具體效果如下:

【每日一練】70—CSS實作[禁止吸煙]3D文本動畫效果

看完了練習效果,我們再來看看它的實作過程。

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);
}      

寫在最後

以上就是今天【每日一練】的全部内容,希望今天的小練習對你有用,如果你覺得有幫助的話,請點贊我,并将它分享給你身邊做開發的朋友,也許能夠幫助到他。

我是楊小愛,我們明天見。

【每日一練】70—CSS實作[禁止吸煙]3D文本動畫效果