原文:创意HTML5文字特效 类似翻页的效果

之前在网上看到一款比较有新意的HTML5文字特效,文字效果是当鼠标滑过是出现翻开折叠的效果,类似书本翻页。于是我兴致勃勃的点开源码看了一下,发现其实实现也挺简单的,主要利用了CSS3的transform属性,分别对X轴、Y轴、Z轴进行翻转,先看一下效果截图。

看效果图这些文字是不是很有立体的感觉,而这个立体的感觉并不是有投影和阴影来实现的,而是通过翻转。

我们可以在这里看到DEMO演示效果

接下来我们来看一下源码。首先是HTML代码,非常简单,列出我们需要渲染的文字:

<div class="foo">
<span class="letter" data-letter="A">A</span>
<span class="letter" data-letter="B">B</span>
<span class="letter" data-letter="C">C</span>
<span class="letter" data-letter="D">D</span>
<span class="letter" data-letter="E">E</span>
<span class="letter" data-letter="F">F</span>
<span class="letter" data-letter="G">G</span>
<span class="letter" data-letter="H">H</span>
<span class="letter" data-letter="I">I</span>
<span class="letter" data-letter="L">L</span>
<span class="letter" data-letter="M">M</span>
<span class="letter" data-letter="N">N</span>
<span class="letter" data-letter="O">O</span>
<span class="letter" data-letter="P">P</span>
<span class="letter" data-letter="Q">Q</span>
<span class="letter" data-letter="R">R</span>
<span class="letter" data-letter="S">S</span>
<span class="letter" data-letter="T">T</span>
<span class="letter" data-letter="U">U</span>
<span class="letter" data-letter="V">V</span>
<span class="letter" data-letter="Z">Z</span>
</div>

接下来是核心CSS3代码,这里我们略去了控制页面样式的CSS代码,把实现翻页效果文字的CSS代码提取出来。

.letter{
display: inline-block;
font-weight:;
font-size: 8em;
margin: 0.2em;
position: relative;
color: #00B4F1;
transform-style: preserve-3d;
perspective:;
z-index:;
}

这样我们就让这些字母安安静静的排列起来,并有了自己的背景颜色,等待强大的CSS3来渲染。

接下来我们要让文字在鼠标滑过的时候产生翻转倾斜的动画。

.letter:before, .letter:after{
position:absolute;
content: attr(data-letter);
transform-origin: top left;
top:;
left:;
}
.letter, .letter:before, .letter:after{
transition: all 0.3s ease-in-out;
}
.letter:before{
color: #fff;
text-shadow:
-1px 0px 1px rgba(255,255,255,.8),
1px 0px 1px rgba(0,0,0,.8);
z-index:;
transform:
rotateX(0deg)
rotateY(-15deg)
rotateZ(0deg);
}
.letter:after{
color: rgba(0,0,0,.11);
z-index:;
transform:
scale(1.08,1)
rotateX(0deg)
rotateY(0deg)
rotateZ(0deg)
skew(0deg,1deg);
}
.letter:hover:before{
color: #fafafa;
transform:
rotateX(0deg)
rotateY(-40deg)
rotateZ(0deg);
}
.letter:hover:after{
transform:
scale(1.08,1)
rotateX(0deg)
rotateY(40deg)
rotateZ(0deg)
skew(0deg,22deg);
}

这里我们利用了CSS3的伪类before和after来快速构造两个相同的字母,然后利用transform属性的rotateX,rotateY,rotateZ来翻转,再利用skew来时文字倾斜。

由于东西也比较简单,全是代码,没啥好详细解说的,有问题请指正,见笑了,呵呵。

最新文章

  1. [LeetCode] Create Maximum Number 创建最大数
  2. Linux 集群
  3. Web service是什么?
  4. thinkphp 3+ 观后详解 (5)
  5. poj 1695 动态规划
  6. 实例介绍Cocos2d-x中Box2D物理引擎:使用关节
  7. 怎么看时序图--nand flash的读操作详解(转载)
  8. [MVC4-基礎] 使用DataAnnotations+jQuery進行表單驗證
  9. 分析JavaScript代码应该放在HTML代码哪个位置比较好
  10. uVa 714 (二分法)
  11. (017)将一棵二叉查找树重构成链表(keep it up)
  12. Android:NavigationView 导航抽屉
  13. Mac下设置JAVA_HOME和MAVEN_HOME
  14. MYSQL—— 完整性约束条件中primary key、auto_increment使用总结!
  15. 轻量的web框架Bottle
  16. Android之Error: &#39;L&#39; is not a valid file-based resource name character解决办法
  17. MPLS笔记
  18. windows通过Visual Studio Code中配置GO开发环境(转)
  19. DMA/Zero copy
  20. java线程操作

热门文章

  1. UML序列图总结(转)
  2. hdu 4882 ZCC Loves Codefires(数学题+贪心)
  3. 重新想象 Windows 8 Store Apps (7) - 控件之布局控件: Canvas, Grid, StackPanel, VirtualizingStackPanel, WrapGrid, VariableSizedWrapGrid
  4. 玩转web之ajax(一)---使用表单的serialize()方法中文乱码解决
  5. UML简单梳理类图
  6. atitit.404错误调查过程汇总
  7. IIS使用 URL Rewrite Module 2.0组件 设置伪静态的方法
  8. .NET 并行(多核)编程系列之七 共享数据问题和解决概述
  9. HSQLDB相关信息及用法汇总
  10. 玩转Web之Jsp(二)-----jsp中怎么使用CKEditor