纯CSS3带阴影效果的剪纸文字动画特效

当前位置:主页 > CSS3库 > CSS3动画 > 纯CSS3带阴影效果的剪纸文字动画特效
纯CSS3带阴影效果的剪纸文字动画特效
分享:

    插件介绍

    这是一款效果非常炫酷的纯CSS3带阴影效果的剪纸文字动画特效。它利用伪元素来制作文字脱离屏幕的剪纸效果,并在伪元素上执行旋转和缩放,使其在鼠标滑过是产生关门的动画特效。

    浏览器兼容性

    浏览器兼容性
    时间:11-03
    阅读:
简要教程

这是一款效果非常炫酷的纯CSS3带阴影效果的剪纸文字动画特效。它利用伪元素来制作文字脱离屏幕的剪纸效果,并在伪元素上执行旋转和缩放,使其在鼠标滑过是产生关门的动画特效。

使用方法

HTML结构

该剪纸文字动画的HTML结构是在<p>元素里放置一组<span>元素,每一个<span>元素是一个字母。其中data-text用于制作伪元素的内容,即向外凸出的文字。

<p aria-label="PeeledText">
  <span data-text="J">J</span>
  <span data-text="Q">Q</span>
  <span data-text="U">U</span>
  <span data-text="E">E</span>
  <span data-text="R">R</span>
  <span data-text="Y">Y</span>
  <span data-text="之">之</span>
  <span data-text="家">家</span>
</p>
              
CSS样式

为了制作3D效果,段落中的span元素都设置了perspective属性。并将transform-style属性设置为preserve-3d。因为IE浏览器不支持这个属性,所以在鼠标滑过文字时不会有动画效果。

p span {
  display: inline-block;
  position: relative;
  -webkit-transform-style: preserve-3d;
          transform-style: preserve-3d;
  -webkit-perspective: 500;
          perspective: 500;
  -webkit-font-smoothing: antialiased;
}               
              

然后设置span元素的:before:after伪元素的内容为data-text属性中的内容,并修改它们的转换原点,以及设置动画过渡效果。

p span::before,
p span::after {
  display: none;
  position: absolute;
  top: 0;
  left: -1px;
  -webkit-transform-origin: left top;
      -ms-transform-origin: left top;
          transform-origin: left top;
  -webkit-transition: all ease-out 0.3s;
          transition: all ease-out 0.3s;
  content: attr(data-text);
}                
              

span元素的:before伪元素用于制作文字的阴影效果。

p span::before {
  z-index: 1;
  color: rgba(0,0,0,0.2);
  -webkit-transform: scale(1.1, 1) skew(0deg, 20deg);
      -ms-transform: scale(1.1, 1) skew(0deg, 20deg);
          transform: scale(1.1, 1) skew(0deg, 20deg);
}                
              

span元素的:after伪元素用于制作剪纸文字,它使用rotateY函数旋转了-40度,形成向外凸出的效果。

p span:hover::before {
  -webkit-transform: scale(1.1, 1) skew(0deg, 5deg);
      -ms-transform: scale(1.1, 1) skew(0deg, 5deg);
          transform: scale(1.1, 1) skew(0deg, 5deg);
}                
              

最后在鼠标滑过span元素的时候,分别修改:before:after伪元素的transform属性,使其产生关门的效果。

p span:hover::after {
  -webkit-transform: rotateY(-10deg);
          transform: rotateY(-10deg);
}
p span + span {
  margin-left: 0.3em;
}