CSS3炫酷圆形导航菜单特效
大致思路:
1、首先建立出一个圆作为主菜单
2、其次实现出十个子菜单元素,并且给它们绝对定位和一个圆心(transform-origin: 100px 100px;),以保证它们是围绕着这个圆心出现的
3、为每个元素设立动效实践,当鼠标悬停时,该li元素旋转角度
<div class="container">
<div class="navbar">主菜单 <ul class="menu">
<li><a class="fa fa-facebook" href=""></a></li>
<li><a class="fa fa-google-plus" href=""></a></li>
<li><a class="fa fa-twitter" href=""></a></li>
<li><a class="fa fa-linkedin" href=""></a></li>
<li><a class="fa fa-pinterest" href=""></a></li>
<li><a class="fa fa-rss" href=""></a></li>
<li><a class="fa fa-instagram" href=""></a></li>
<li><a class="fa fa-skype" href=""></a></li>
<li><a class="fa fa-github" href=""></a></li>
</ul>
</div>
</div>
css:
* {
margin: 0;
padding: 0;
}
body {
background-color: #262626;
}
.container {
padding: 2em 0;
transform: translate3d(0, 0, 0);
}
.navbar {
width: 150px;
height: 150px;
line-height: 150px;
background-color: #fff;
border-radius: 50%;
margin: 70px auto;
/* 相对定位 */
position: relative;
cursor: pointer;
text-align: center;
font-size: 1.75em;
font-weight: bold;
color: #383838;
/* transition: 0.24s 0.2s; */
transition-property: initial;
transition-duration: 0.24s;
transition-timing-function: initial;
transition-delay: 0.2s;
}
.navbar:hover {
background: rgba(41, 193, 219, 0.75);
transform: scale(0.8);
}
.navbar .menu {
list-style: none;
margin: 0;
padding: 0;
border: 150px solid transparent;
border-radius: 50%;
cursor: default;
position: absolute;
top: -75px;
left: -75px;
z-index: -1;
transform: scale(0);
transition: transform 1.4s 0.07s;
}
.navbar:hover .menu {
transition: transform 0.4s 0.08s, z-index 0s 0.5s;
transform: scale(1);
z-index: 1;
}
.navbar .menu li {
/* 绝对定位 */
position: absolute;
top: -100px;
left: -100px;
transform-origin: 100px 100px;
transition: all 0.5s 0.1s;
}
.navbar:hover .menu li {
transition: all 0.6s;
}
.navbar .menu li a {
display: inline-block;
width: 45px;
height: 45px;
line-height: 45px;
background-color: #fff;
border-radius: 50%;
color: #99b977;
text-decoration: none;
position: absolute;
transform: all 0.4s ease 0s;
transition: 0.6s;
}
.navbar .menu li a:hover {
background-color: #2860f8;
color: #fff;
}
.navbar:hover .menu li:nth-child(1) {
transition-delay: 0.02s;
transform: rotate(85deg);
}
.navbar:hover .menu li:nth-child(2) {
transition-delay: 0.04s;
transform: rotate(125deg);
}
.navbar:hover .menu li:nth-child(3) {
transition-delay: 0.06s;
transform: rotate(165deg);
}
.navbar:hover .menu li:nth-child(4) {
transition-delay: 0.08s;
transform: rotate(205deg);
}
.navbar:hover .menu li:nth-child(5) {
transition-delay: 0.1s;
transform: rotate(245deg);
}
.navbar:hover .menu li:nth-child(6) {
transition-delay: 0.12s;
transform: rotate(285deg);
}
.navbar:hover .menu li:nth-child(7) {
transition-delay: 0.14s;
transform: rotate(325deg);
}
.navbar:hover .menu li:nth-child(8) {
transition-delay: 0.16s;
transform: rotate(365deg);
}
.navbar:hover .menu li:nth-child(9) {
transition-delay: 0.18s;
transform: rotate(405deg);
}
.navbar:hover .menu li:nth-child(1) a {
transition-delay: 0.04s;
transform: rotate(635deg);
}
.navbar:hover .menu li:nth-child(2) a {
transition-delay: 0.08s;
transform: rotate(595deg);
}
.navbar:hover .menu li:nth-child(3) a {
transition-delay: 0.12s;
transform: rotate(555deg);
}
.navbar:hover .menu li:nth-child(4) a {
transition-delay: 0.16s;
transform: rotate(515deg);
}
.navbar:hover .menu li:nth-child(5) a {
transition-delay: 0.2s;
transform: rotate(475deg);
}
.navbar:hover .menu li:nth-child(6) a {
transition-delay: 0.24s;
transform: rotate(435deg);
}
.navbar:hover .menu li:nth-child(7) a {
transition-delay: 0.28s;
transform: rotate(395deg);
}
.navbar:hover .menu li:nth-child(8) a {
transition-delay: 0.32s;
transform: rotate(355deg);
}
.navbar:hover .menu li:nth-child(9) a {
transition-delay: 0.36s;
transform: rotate(315deg);
}
代码演示:
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果