html实现3d转换效果,教你如何用CSS实现3D翻转效果的菜单
随着浏览器技术的进步,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翻转效果的菜单相关推荐
- HTML字体怎么显示,教你如何用CSS来控制网页字体的显示样式
教你如何用CSS来控制网页字体的显示样式 更新时间:2007年02月27日 00:00:00 作者: HTML对于<font>内容</font>卷标只有: <font ...
- html修改img图片颜色,教你如何用CSS修改图片颜色
原标题:教你如何用CSS修改图片颜色 看到题目是不是吓了一跳?css竟然还有这个操作?还真是第一次听说~ 原理嘛,其实很简单的,用到的就是 CSS3 滤镜filter中的drop-shadow,该滤镜 ...
- CSS实现元素翻转效果
CSS实现元素翻转效果 元素翻转的效果能让用户有良好的体验感. 先看看效果: CSS实现元素翻转的效果有两种思路 1.定义一个父元素,父元素中两个子元素,两个子元素分别是背面与正面,两个子元素同时翻转 ...
- html页面文字随机效果,教你用javascript实现随机标签云效果_附代码
标签云是一套相关的标签以及与此相应的权重.典型的标签云有30至150个标签.权重影响使用的字体大小或其他视觉效果.同时,直方图或饼图表是最常用的代表约12种不同的权数.因此,标签云彩能代表更多的权,尽 ...
- HTML和CSS实现图片翻转效果
实现图片翻转,首先来分析一下我们希望实现的是怎样的翻转效果?又该如何去实现呢? 一.希望实现的效果 页面上的图片在光标悬停在上面的时候会发生翻转效果,翻转过后显示出背面的说明文字. 鼠标没有悬停在上面 ...
- 教你用HTML+CSS实现百叶窗动画效果
推荐学习专栏: [JavaWeb]Web前端 JavaWeb学习专栏 文章目录 前言 1.百叶窗效果 2.原理讲解 3.制作百叶窗 4.资源下载 5.完整代码 总结 前言 我们浏览网页的时候总能看见一 ...
- 教你如何用ps制作紫色光斑效果
1.新建800x800画布 2.设置前景色和背景色分别为#b38adb ,#212121;执行"滤镜"-"渲染"-"云彩"操作 3.执行&q ...
- css毛玻璃效果白边_使用css模拟vista毛玻璃效果
近来Windows Vista的毛玻璃效果一直受到界内同行的争相模仿.小弟不才,也来发表下自己的拙见. 首先准备两张背景图片,一张为正常图片,另外一张表现为正常图片的模糊效果. 利用css里面对背景的 ...
- 如何用css实现波纹动画效果
波纹效果可以用css的 animation 动画来实现,animation 相比 单纯用 transform 能实现更为复杂的效果. 效果图: 下面三张图分别为 原图.效果图和去掉背景图片后的效果图, ...
最新文章
- 内存卡损坏 linux 修复,Linux系统恢复工具
- 引用 vsftpd配置手册(实用)
- 截取字符串指定内容,并用*号代替
- 06一键直达:一键整理、秒搜、秒开任何文件、软件、网址
- linux删文件进程叫什么,Linux find 查找 并删除文件 杀掉进程
- 3%7python_Centos7 Python2 升级到Python3
- 转:字符编码笔记:ASCII,Unicode 和 UTF-8
- authentication plugin caching_sha2
- vb中filecopy拷贝文件
- 盒子模型实验报告总结_真刀真枪模块化(2)——图解Service模型
- Java多线程学习四十三:
- 大数据可视化技术价值体现在哪方面
- 计算机开机后无法正常显示桌面图标,电脑开机后不显示桌面图标怎么办
- 马斯洛提出动机理论_人做事的动机来自于哪里?--马斯洛需求层次理论解读
- NOI2010:航空管制(拓扑排序 + 思维)
- Vue/js 富文本编辑器、excel编辑器合集
- 电商项目day09(网站前台之广告功能实现优化策略)
- C语言编写数独小游戏
- 关于“已知有两孩子,第一个孩子为女孩,求第二个孩子为女孩的概率”的个人见解
- 一键提取,将视频中的音频提取