随着浏览器技术的进步,CSS动画技术已经不是只那些简单的淡入淡出效果或幻灯片效果,它们能做很多更强大的事情。我曾经向大家展示过闪光的logo,燃烧的火狐狸,多重嵌套动画等例子,今天,我们将要制作一个简单但非常酷的3D翻转菜单。大家可以先看看实际效果,下面有效果截图和演示链接。

HTML代码

HTML内容是一些用作菜单的链接,我们在里面添加了一些额外的SPAN标记来帮助实现3D效果:

  • Home

    Home

    Home

  • Demos

    Demos

    Demos

在A链接标记旁边是一系列的SPAN元素,动画演示过程中,它将用来表现3D立方体的“正面”和“背面”。这些SPAN里的文字和A链接里的文字是一致的。

CSS代码

这个动画的过程就是实现3D变换和元素位置变化。但实际上A链接是没有移动的,动的是SPAN标签,而且是最外层的SPAN标签,内部的SPAN标签被初始化在它的位置上,以后就不做任何变动。每个元素都可以向上翻,并要翻回来,我们使用的是CSS transforms。

/* basic menu styles */

.block-menu {

display: block;

background: #000;

}

.block-menu li {

display: inline-block;

}

.block-menu li a {

color: #fff;

display: block;

text-decoration: none;

font-family: 'Passion One', Arial, sans-serif;

font-smoothing: antialiased;

text-transform: uppercase;

overflow: visible;

line-height: 20px;

font-size: 24px;

padding: 15px 10px;

}

/* animation domination */

.three-d {

perspective: 200px;

transition: all .07s linear;

position: relative;

cursor: pointer;

}

/* complete the animation! */

.three-d:hover .three-d-box,

.three-d:focus .three-d-box {

transform: translateZ(-25px) rotateX(90deg);

}

.three-d-box {

transition: all .3s ease-out;

transform: translatez(-25px);

transform-style: preserve-3d;

pointer-events: none;

position: absolute;

top: 0;

left: 0;

display: block;

width: 100%;

height: 100%;

}

/*

put the "front" and "back" elements into place with CSS transforms,

specifically translation and translatez

*/

.front {

transform: rotatex(0deg) translatez(25px);

}

.back {

transform: rotatex(-90deg) translatez(25px);

color: #ffe7c4;

}

.front, .back {

display: block;

width: 100%;

height: 100%;

position: absolute;

top: 0;

left: 0;

background: black;

padding: 15px 10px;

color: white;

pointer-events: none;

box-sizing: border-box;

}

如果你想看看正面和反面各自是如何旋转移动的,我强烈推荐你们试一下,将其中的一个设置为display: none,让鼠标悬停在它们上面,你将会看到它们各自将完成整个动画的哪一部分动作。

这种实现方式的唯一的缺点是有重复的菜单名称,虽然技术上是隐藏看不出来的,但从代码质量上说存在代码重复问题。然而,从视觉效果上看,它的动画非常顺滑,毫无瑕疵。没有JavaScript,Flash或canvas技术,只是一些简单的CSS标记,这技术CSS动画….一种我们web程序员都应该感谢的技术。

html实现3d转换效果,教你如何用CSS实现3D翻转效果的菜单相关推荐

  1. HTML字体怎么显示,教你如何用CSS来控制网页字体的显示样式

    教你如何用CSS来控制网页字体的显示样式 更新时间:2007年02月27日 00:00:00   作者: HTML对于<font>内容</font>卷标只有: <font ...

  2. html修改img图片颜色,教你如何用CSS修改图片颜色

    原标题:教你如何用CSS修改图片颜色 看到题目是不是吓了一跳?css竟然还有这个操作?还真是第一次听说~ 原理嘛,其实很简单的,用到的就是 CSS3 滤镜filter中的drop-shadow,该滤镜 ...

  3. CSS实现元素翻转效果

    CSS实现元素翻转效果 元素翻转的效果能让用户有良好的体验感. 先看看效果: CSS实现元素翻转的效果有两种思路 1.定义一个父元素,父元素中两个子元素,两个子元素分别是背面与正面,两个子元素同时翻转 ...

  4. html页面文字随机效果,教你用javascript实现随机标签云效果_附代码

    标签云是一套相关的标签以及与此相应的权重.典型的标签云有30至150个标签.权重影响使用的字体大小或其他视觉效果.同时,直方图或饼图表是最常用的代表约12种不同的权数.因此,标签云彩能代表更多的权,尽 ...

  5. HTML和CSS实现图片翻转效果

    实现图片翻转,首先来分析一下我们希望实现的是怎样的翻转效果?又该如何去实现呢? 一.希望实现的效果 页面上的图片在光标悬停在上面的时候会发生翻转效果,翻转过后显示出背面的说明文字. 鼠标没有悬停在上面 ...

  6. 教你用HTML+CSS实现百叶窗动画效果

    推荐学习专栏: [JavaWeb]Web前端 JavaWeb学习专栏 文章目录 前言 1.百叶窗效果 2.原理讲解 3.制作百叶窗 4.资源下载 5.完整代码 总结 前言 我们浏览网页的时候总能看见一 ...

  7. 教你如何用ps制作紫色光斑效果

    1.新建800x800画布 2.设置前景色和背景色分别为#b38adb ,#212121;执行"滤镜"-"渲染"-"云彩"操作 3.执行&q ...

  8. css毛玻璃效果白边_使用css模拟vista毛玻璃效果

    近来Windows Vista的毛玻璃效果一直受到界内同行的争相模仿.小弟不才,也来发表下自己的拙见. 首先准备两张背景图片,一张为正常图片,另外一张表现为正常图片的模糊效果. 利用css里面对背景的 ...

  9. 如何用css实现波纹动画效果

    波纹效果可以用css的 animation 动画来实现,animation 相比 单纯用 transform 能实现更为复杂的效果. 效果图: 下面三张图分别为 原图.效果图和去掉背景图片后的效果图, ...

最新文章

  1. 内存卡损坏 linux 修复,Linux系统恢复工具
  2. 引用 vsftpd配置手册(实用)
  3. 截取字符串指定内容,并用*号代替
  4. 06一键直达:一键整理、秒搜、秒开任何文件、软件、网址
  5. linux删文件进程叫什么,Linux find 查找 并删除文件 杀掉进程
  6. 3%7python_Centos7 Python2 升级到Python3
  7. 转:字符编码笔记:ASCII,Unicode 和 UTF-8
  8. authentication plugin caching_sha2
  9. vb中filecopy拷贝文件
  10. 盒子模型实验报告总结_真刀真枪模块化(2)——图解Service模型
  11. Java多线程学习四十三:
  12. 大数据可视化技术价值体现在哪方面
  13. 计算机开机后无法正常显示桌面图标,电脑开机后不显示桌面图标怎么办
  14. 马斯洛提出动机理论_人做事的动机来自于哪里?--马斯洛需求层次理论解读
  15. NOI2010:航空管制(拓扑排序 + 思维)
  16. Vue/js 富文本编辑器、excel编辑器合集
  17. 电商项目day09(网站前台之广告功能实现优化策略)
  18. C语言编写数独小游戏
  19. 关于“已知有两孩子,第一个孩子为女孩,求第二个孩子为女孩的概率”的个人见解
  20. 一键提取,将视频中的音频提取

热门文章

  1. RTX2060和GTX1070Ti 哪个好
  2. PythonC++相互混合调用编程全面实战-18c++给python传递变量的两种方法
  3. 【css】苹果手机上input的button按钮颜色显示问题
  4. 32位和64位及其内存长度
  5. 阿里巴巴五轮面试经验分享
  6. 企业微信公众号自定义消息模板
  7. R语言 | 安装xlsx包 部署Java环境
  8. 最详细的设计模式的七大原则讲解
  9. UV Toolkit贴图教程甜
  10. 数据库字段类型、JDBC类型、Java类型映射关系