CSS3 3D立方体翻转菜单实现教程
今天我们来看一个非常有创意的CSS3 3D菜单,这个菜单的菜单项是可以旋转的长方体,鼠标滑过是长方体即可旋转,看看下面的效果图,是不是感觉非常酷,我觉得这个菜单很适合用在咱们开发人员的个人网站上。

当然你也可以直接到这里去查看这款菜单的DEMO演示。
接下来还是分析一下这款CSS3菜单的源代码吧,很简单的HTML+CSS即可实现。
先来看看HTML代码:
<nav>
<ul>
<li><a class="current" href="#" data-hover="Home">Home</a></li>
<li><a href="#" data-hover="Blog">Blog</a></li>
<li><a href="#" data-hover="About">About</a></li>
<li><a href="#" data-hover="Contact">Contact</a></li>
</ul>
</nav>
这个HTML布局可谓是干净利落,很难看出来这会是一款超酷的3D菜单。
当然最重要的是CSS代码,一起来看看:
先是定义了一下菜单的整体外观,包括文字的颜色和菜单的背景等等:
nav {
background: #fff;
margin: 15vh 2rem;
}
nav ul {
list-style: none;
}
nav ul li {
display: inline-block;
text-transform: uppercase;
font-size: 1.5rem;
letter-spacing: 0.05rem;
}
nav ul li a {
display: inline-block;
padding: 1rem;
color: #000;
text-decoration: none;
-webkit-transition: -webkit-transform 0.3s ease 0s;
transition: transform 0.3s ease 0s;
-webkit-transform-origin: 50% 0px 0px;
-ms-transform-origin: 50% 0px 0px;
transform-origin: 50% 0px 0px;
-webkit-transform-style: preserve-3d;
-ms-transform-style: preserve-3d;
transform-style: preserve-3d;
}
nav ul li a.current {
color: #FF005B;
}
然后就是鼠标滑过菜单项实现的立方体翻转效果了:
nav ul li a:hover {
background: #fff;
color: #000;
-webkit-transform: rotateX(90deg) translateY(-22px);
-ms-transform: rotateX(90deg) translateY(-22px);
transform: rotateX(90deg) translateY(-22px);
}
nav ul li a::before {
position: absolute;
top: 100%;
left: 0px;
width: 100%;
padding: 4px 0px;
text-align: center;
line-height: 50px;
background: none repeat scroll 0% 0% #FF005B;
color: #FFF;
content: attr(data-hover);
-webkit-transition: #6363CE 0.3s ease 0s;
transition: #6363CE 0.3s ease 0s;
-webkit-transform: rotateX(-90deg);
-ms-transform: rotateX(-90deg);
transform: rotateX(-90deg);
-webkit-transform-origin: 50% 0px 0px;
-ms-transform-origin: 50% 0px 0px;
transform-origin: 50% 0px 0px;
}
不难看出,我们通过CSS3的transform的rotate属性就能完成翻转的动作,同时结合transition属性来实现翻转过程中颜色的渐变动画。
最后我们把源代码分享上来,下载地址>>
CSS3 3D立方体翻转菜单实现教程的更多相关文章
- CSS3 3D立方体效果-transform也不过如此
CSS3系列已经学习了一段时间了,第一篇文章写了一些css3的奇技淫巧,原文戳这里,还获得了较多网友的支持,在此谢过各位,你们的支持是我写文章最大的动力^_^. 那么这一篇文章呢,主要是通过一个3D立 ...
- CSS3 3D立方体效果
<!DOCTYPE HTML><html><head><meta http-equiv="Content-Type" content=&q ...
- css3 3d正反面翻转
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CSS3 3D旋转动画菜单
在线演示 本地下载
- 纯css3 3D图片立方体旋转动画特效
纯css3 3D立方体模块,鼠标触碰,模块炸开,大立方体中套小立方体 效果展示 手机扫描二维码体验效果: 效果图如下: 源码下载:http://hovertree.com/h/bjaf/0qmul8g ...
- 基于HTML5/CSS3可折叠的3D立方体动画
今天要给大家带来另外一款CSS3 3D立方体动画,尤其在DEMO2中可以看到,鼠标滑过立方体后,它将会被打开,从里面弹出另外一个小立方体,动画效果非常酷,非常逼真. 在线预览 源码下载 实现的代码 ...
- CSS3 3D Transform
CSS3 3D Transform 原文:http://www.w3cplus.com/css3/css3-3d-transform.html 三维变换使用基于二维变换的相同属性,如果您熟悉二维变换, ...
- 炫酷实用的CSS3代码垂直手风琴菜单
今天在微博上看到别人分享的代码,自己拿来自己保存着. 代码效果如下: 下面是源码: index.html <!DOCTYPE html> <html > <head> ...
- 一款非常棒的纯CSS3 3D菜单演示及制作教程
原文:一款非常棒的纯CSS3 3D菜单演示及制作教程 这段时间比较忙,很久没在这里分享一些漂亮的HTML5和CSS3资源了,今天起的早,看到一款很不错的CSS3 3D菜单,觉得非常上眼,就将它分享给大 ...
随机推荐
- 前端js上传文件插件
1. plupload文件上传 2.ajaxfileupload文件上传
- Mysql 多表查询详解
Reference: https://blog.csdn.net/jintao_ma/article/details/51260458 一.前言 二.示例 三.注意事项 一.前言 上篇讲到Mysql ...
- Android开发(四)——Android中的颜色
Android开发中关于资源文件的存储操作.对于Android资源也是非常重要的,主要包括文本字符串(strings).颜色(colors).数组(arrays).动画(anim).布局(layout ...
- 正则表达式-python-无捕获分组与分支选择
无捕获分组 当你要将一部分规则作为一个整体对它进行某些操作,比如指定其重复次数时,你需要将这部分规则用 (?:) 把它包围起来. 分支条件 在正则表达式中,分支条件是一个很常用的条件. 满足条件A 或 ...
- 【C++程序员学 python】python 的文件类型
python的文件类型主要分为3种,分别是源代码.字节代码和优化代码.这些代码都可以直接运行,不需要进行编译或者连接.这正是python语言的特性,python的文件通过python.exe 或pyt ...
- RecyclerView 输出的和排版的不一样
遇到过这样一种情况,就是RecyclerView加载出来的和看到Android Studio里的不一样 原因是: @Override public ViewHolder onCreateViewHol ...
- [转]Extjs中的迭代方法
原文地址:http://www.veryhuo.com/a/view/36701.html EXTJS 有很多的迭代方法,例如,你也许已知道的Ext.each,但还有另外一些不为人知且很有用的方法.首 ...
- 微服务之springCloud-docker-feign-hystrix-ribbon(七)
简介 在上一节中,我们讨论了feign+hystrix在项目开发中,除了考虑正常的调用之外,负载均衡和故障转移也是关注的重点,这也是feign + ribbon+hystrix的优势所在,本节我们就讨 ...
- hexo静态博客的安装及应用实践记录
1. 必须要安装 nodejs,git 2. 安装hexo node install -g hexo 3. npm源的问题使在安装时有卡住的问题而导致无法安装,则需要更改npm的源 npm confi ...
- Ext.dom.Element 常用方法解析
Ext.dom.Element 常用方法解析 Ext.Element,Ext.core.Elemen,Ext.dom.Element 这几个类都是一个类,在EXT当中给起了别名而已,这个类到作用主要是 ...