加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 智能机器人、大数据、CDN、图像分析、语音技术!
当前位置: 首页 > 教程 > 正文

怎么用css设计炫酷的3D文字特效

发布时间:2023-07-25 10:32:01 所属栏目:教程 来源:未知
导读:   本篇内容主要讲解“怎么用css制作炫酷的3D文字特效”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用css制作炫酷
  本篇内容主要讲解“怎么用css制作炫酷的3D文字特效”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用css制作炫酷的3D文字特效”吧!
 
  利用距离、角度及光影构建不一样的 3D 效果
 
  这是一种很有意思的技巧,当然,制作的过程需要比较多的调试。
 
  合理的利用距离、角度及光影构建出不一样的 3D 效果。看看下面这个例子,只是简单是设置了三层字符,让它们在 Z 轴上相距一定的距离。
 
  简单的伪代码如下:
 
  <div>
 
    <span class='C'>C</span>
 
    <span class='S'>S</span>
 
    <span class='S'>S</span>
 
    <span></span>
 
    <span class='3'>3</span>
 
    <span class='D'>D</span>
 
  </div>
 
  $bright : #AFA695;
 
  $gold : #867862;
 
  $dark : #746853;
 
  $duration : 10s;
 
  div {
 
   perspective: 2000px;
 
   transform-style: preserve-3d;
 
   animation: fade $duration infinite;
 
  }
 
  span {
 
   transform-style: preserve-3d;
 
   transform: rotateY(25deg);
 
   animation: rotate $duration infinite ease-in;
 
   &:after, &:before {
 
   content: attr(class);
 
   color: $gold;
 
   z-index: -1;
 
   animation: shadow $duration infinite;
 
   }
 
   &:after{
 
   transform: translateZ(-16px);
 
   }
 
   &:before {
 
   transform: translateZ(-8px);
 
   }
 
  }
 
  @keyframes fade {
 
   // 透明度变化
 
  }
 
  @keyframes rotate {
 
   // 字体旋转
 
  }
 
  @keyframes shadow {
 
         // 字体颜色变化
 
  }
 
  简单捋一下,上述代码的核心就是:
 
  父元素、子元素设置 transform-style: preserve-3d
 
  用 span 元素的两个伪元素复制两个相同的字,利用 translateZ() 让它们在 Z 轴间隔一定距离
 
  添加简单的旋转、透明度、字体颜色变化
 
  可以得到这样一种类似电影开片的标题 3D 动画,其实只有 3 层元素,但是由于角度恰当,视觉上的衔接比较完美,看上去就非常的 3D。
 
  为什么上面说需要合理的利用距离、角度及光影呢?
 
  还是同一个动画效果,如果动画的初始旋转角度设置的稍微大一点,整个效果就会穿帮:
 
  可以看到,在前几帧,能看出来简单的分层结构。又或者,简单调整一下 perspective,设置父容器的 perspective 由 2000px 改为 500px,穿帮效果更为明显:

  也就是说,在恰当的距离,合适的角度,我们仅仅通过很少的元素,就能在视觉上形成比较不错的 3D 效果。
 
  上述的完整代码,你可以猛击这里:CSS 灵感 -- 3D 文字出场动画
 
  基于,这个技巧,我们简单的改造一下,我们首先替换一下文字效果:
 
  <div>
 
    <span class='2'>2</span>
 
    <span class='0'>0</span>
 
    <span class='2'>2</span>
 
    <span class='3'>3</span>
 
  </div>
 
  这样,我们就可以得到这样一种效果:

  Wow,有点那个意思了。接下来,我们需要换上喜庆的文字效果。首先,随便在网上找一找烟花 Gif 图,也许是这样:
 
  怎么用css制作炫酷的3D文字特效
 
  我们通过 background-clip: text,给 3 层文字都加上类似这个效果,核心伪代码如下:
 
  span {
 
   position: relative;
 
   transform-style: preserve-3d;
 
   color: transparent;
 
   background: url(xxx.gif);
 
   background-clip: text;
 
  
 
   &:after, &:before {
 
   position: absolute;
 
   content: attr(class);
 
   color: transparent;
 
   background: url(xxx.gif);
 
           background-clip: text;
 
   }
 
  
 
   &:before {
 
   transform: translateZ(-12px);
 
   }
 
   &:after {
 
   transform: translateZ(-6px);
 
   }
 
  }
 
  这样,我们就得到了带有烟花效果的文字,以及,一点 3D 效果:
 
  还剩下最后一步,倒影效果怎么制作呢?
 
  方法有很多种,比较便捷的是使用 webkit-box-reflect 元素。只需要一行代码即可:
 
  div {
 
      //...
 
      -webkit-box-reflect: below -6vw linear-gradient(transparent 20%, rgba(255,255,255, .6));
 
  }
 
  当然,如果对两个伪元素生成的字形成的 3D 文字视觉上的厚度不满意,也可以同步去调整两个伪元素的 transform: translateZ(-6px) 的值,经过一番调整后,我们就简单的复刻了如题图所示的 2023 3D 文字动画效果:
 
  到此,相信大家对“怎么用css制作炫酷的3D文字特效”有了更深的了解,不妨来实际操作一番吧!
 

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章