基于CSS3&jQuery之3d菜单滑动效果。竖直的主菜单贴着页面左侧,当光标移入菜单项时,以3D动画的方式弹出对应的二级菜单。
采用jQuery和CSS3实现。支持Chrome,火狐,Edge等浏览器。
效果图:
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no">
<title>jQuery鼠标悬停3d菜单展开动画</title>
<style type="text/css">
@charset "utf-8";
html, body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, p, blockquote, th, td, textarea { margin: 0; padding: 0; font-size: 14px; line-height: 24px; color: #000; font-family: 'microsoft yahei',verdana,Tahoma; }
ol, ul, li { list-style: none; line-height: 22px; }
ol, ul { zoom: 1; }
h1, h2, h3, h4, h5, h6 { font-size: 100%; }
img { border: none; max-width: 100%; }
a, a:link, a:visited { cursor: pointer; text-decoration: none;}
a:hover { cursor: pointer; }
.table { border-collapse: collapse; border-spacing: 0; }
.table td { border: solid 1px #666; }
.clear { clear: both; float: none; overflow: hidden; height: 0; font-size: 0; }
.clearFix:after { clear: both; display: block; visibility: hidden; height: 0; line-height: 0; content: "."; }
.clearFix { zoom: 1; }
* { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
:after, :before { -webkit-box-sizing: border-box; -moz-box-sizing: border-box; box-sizing: border-box; }
.font { font: 14px/24px "Comic Sans MS"; }
:focus { outline: none; }
.css3pie { -webkit-border-radius: 5px; -moz-border-radius: 5px; border-radius: 5px; behavior: url(css3pie/PIE.htc); }
/*------------------------------------------------------------------------------------------------------------------------------------------------*/
body{ font-size: 14px; font-family: "黑体-简","黑体","微软雅黑", Arial, Gotham, "Helvetica Neue", Helvetica, sans-serif; width: 100%; margin: 0 auto; background-color: #313131; overflow-x: hidden; }
.wrap{width:100%;height:1000px;}
.wrap p{font-size: 48px;text-align: center;color: #fff;padding-top: 280px;line-height: 60px;}
.logo{
text-align: center;
vertical-align: middle;
background: #357dd7;
margin-left: 45%;
top: 20%;
z-index: 11;
width: 240px;
height: 240px;
overflow: hidden;
position: relative;
}
.logo:hover{
box-shadow: 0px 0px 10px #333;
}
.logo h1{
display: table-cell;
vertical-align: middle;
width: 240px;
height: 240px;
}
.logo a{width: 240px;height: 240px;overflow: hidden;}
.logo a:before{
content: '';
position: absolute;
left: -230%;
top: 0px;
width: 200%;
height: 120%;
background: #1f415f;
z-index: 1;
transform:skew(30deg, 0);
-webkit-transform:skew(30deg, 0);
-ms-transform:skew(30deg, 0);
-moz-transform:skew(30deg, 0);
-o-transform:skew(30deg, 0);
transition:all .5s;
-moz-transition:all .5s;
-webkit-transition:all .5s;
-o-transition:all .5s;
}
.logo a:hover{
background: #357dd7;
}
.logo a:hover:before {
left: -60px;
}
.logo img {
position: relative;
z-index: 1;
}
/* hovertree.com */
/*一级导航*/
.nav-main{
position: fixed;
top: 0;
z-index: 12;
height: 100%;
width: 100px;
color: #fff;
background: #111213;
}
.nav-main a{color: #fff;}
.nav-box{
position: relative;
perspective: 200px;
-webkit-perspective: 200px;
transform-style: preserve-3d;
-webkit-transform-style: preserve-3d;
height: 100%;
z-index: 99;
}
.nav-ul li a{
display: block;
width: 100px;
height: 100px;
overflow: hidden;
text-align: center;
position: relative;
transition: all .5s;
-moz-transition: all .5s;
-webkit-transition: all .5s;
-o-transition: all .5s;
}
.nav-ul li a:before{
content: '';
position: absolute;
left: -240px;
top: 0px;
width: 200px;
height: 100%;
background: #629feb;
z-index: 1;
transform: skew(30deg, 0);
-webkit-transform: skew(30deg, 0);
-ms-transform: skew(30deg, 0);
-moz-transform: skew(30deg, 0);
-o-transform: skew(30deg, 0);
transition: all .5s;
-moz-transition: all .5s;
-webkit-transition: all .5s;
-o-transition: all .5s;
}
.nav-ul li a:hover{background: #357dd7;}
.nav-ul li a:hover:before{left: -30px;}
.nav-ul li a:after{
content: '';
position: absolute;
width: 100%;
height: 30px;
left: 0;
top: 20px;
z-index: 1;
}
.nav-ul li a span{
display: block;
margin-top: 60px;
perspective:none;
position: relative;
z-index: 1;
}
.nav-slide{
position: fixed;
left: 100px;
top: 0;
width: 240px;
height: 100%;
background: #252829;
transform: rotateY(120deg);
-webkit-transform: rotateY(120deg);
-moz-transform: rotateY(120deg);
-o-transform: rotateY(120deg);
-ms-transform: rotateY(120deg);
z-index: 99;
visibility: hidden;
transform-origin: 0 0;
-webkit-transform-origin: 0 0;
-moz-transform-origin: 0 0;
-o-transform-origin: 0 0;
-ms-transform-origin: 0 0;
backface-visibility: hidden;
-webkit-backface-visibility: hidden;
transition: all .5s;
-webkit-transition: all .5s;
-moz-transition: all .5s;
-o-transition: all .5s;
transition-timing-function: cubic-bezier(.08, .72, .71, .96);
-webkit-transition-timing-function: cubic-bezier(.08, .72, .71, .96);
}
.nav-slide.hover{
transform: rotateY(0deg);
-webkit-transform: rotateY(0deg);
-moz-transform: rotateY(0deg);
-o-transform: rotateY(0deg);
-ms-transform: rotateY(0deg);
z-index: 15;
visibility: visible;
}
/*二级菜单*/
.nav-slide-o li a{
line-height: 50px;
display: block;
padding: 0 20px;
font-size: 14px;
overflow: hidden;
text-align: left;
position: relative;
transition: all .5s;
-webkit-transition: all .5s;
-moz-transition: all .5s;
-o-transition: all .5s;
}
.nav-slide-o li a:before{
content: '';
position: absolute;
left: -230%;
top: 0px;
width: 200%;
height: 100%;
background: #629feb;
z-index: 1;
transform: skew(30deg, 0);
-webkit-transform: skew(30deg, 0);
-moz-transform: skew(30deg, 0);
-o-transform: skew(30deg, 0);
-ms-transform: skew(30deg, 0);
transition: all .5s;
-webkit-transition: all .5s;
-moz-transition: all .5s;
-o-transition: all .5s;
}
.nav-slide-o li a:hover{background: #357dd7;}
.nav-slide-o li a:hover:before{left: -60px;}
.nav-slide-o li a span{position: relative;z-index: 1;}
.nav-slide-o {display: none;}
</style>
</head>
<body>
<div class="wrap">
<p>鼠标移入侧边栏,二级菜单3D展开<br/>鼠标hover背景变色<br />鼠标移入二维码背景变色</p>
</div>
<div class="nav-main">
<div class="nav-box">
<div class="nav">
<ul class="nav-ul">
<li><a href="/" class="home"><span>首页</span></a></li>
<li><a href="/JavaScript/" class="develop"><span>JavaScript</span></a></li>
<li><a href="/Html/" class="wechat"><span>HTML</span></a></li>
<li><a href="/前端工具/" class="case"><span>前端工具</span></a></li>
<li><a href="/前端插件/" class="news"><span>前端插件</span></a></li>
<li><a href="/前端教程/" class="contact"><span>前端教程</span></a></li>
</ul>
</div>
<div class="nav-slide">
<div class="nav-slide-o"></div>
<div class="nav-slide-o">
<ul>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
</ul>
</div>
<div class="nav-slide-o">
<ul>
<li><a href="#"><span>HoverTreeTop</span></a></li>
<li><a href="#"><span>HoverTreeTop</span></a></li>
<li><a href="#"><span>HoverTreeTop</span></a></li>
<li><a href="#"><span>HoverTreeTop</span></a></li>
<li><a href="#"><span>HoverTreeTop</span></a></li>
<li><a href="#"><span>HoverTreeTop</span></a></li>
<li><a href="#"><span>HoverTreeTop</span></a></li>
<li><a href="#"><span>HoverTreeTop</span></a></li>
</ul>
</div>
<div class="nav-slide-o">
<ul>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
<li><a href="#"><span>Web前端之家</span></a></li>
</ul>
</div>
<div class="nav-slide-o">
<ul>
<li><a href="#"><span>网页特效</span></a></li>
<li><a href="#"><span>网页特效</span></a></li>
<li><a href="#"><span>网页特效</span></a></li>
<li><a href="#"><span>网页特效</span></a></li>
<li><a href="#"><span>网页特效</span></a></li>
<li><a href="#"><span>网页特效</span></a></li>
<li><a href="#"><span>网页特效</span></a></li>
<li><a href="#"><span>网页特效</span></a></li>
<li><a href="#"><span>网页特效</span></a></li>
</ul>
</div>
<div class="nav-slide-o"></div>
</div>
</div>
</div>
<script type="text/javascript" src="https://jiangweishan.com/demo/js/jq.js"></script>
<script type="text/javascript">
$(function(){
var thisTime;
$('.nav-ul li').mouseleave(function(even){
thisTime = setTimeout(thisMouseOut,1000);
})
$('.nav-ul li').mouseenter(function(){
clearTimeout(thisTime);
var thisUB = $('.nav-ul li').index($(this));
if($.trim($('.nav-slide-o').eq(thisUB).html()) != "")
{
$('.nav-slide').addClass('hover');
$('.nav-slide-o').hide();
$('.nav-slide-o').eq(thisUB).show();
}
else{
$('.nav-slide').removeClass('hover');
}
})
function thisMouseOut(){
$('.nav-slide').removeClass('hover');
}
$('.nav-slide').mouseenter(function(){
clearTimeout(thisTime);
$('.nav-slide').addClass('hover');
})
$('.nav-slide').mouseleave(function(){
$('.nav-slide').removeClass('hover');
})
})
</script>
</body>
</html>







网友评论文明上网理性发言 已有0人参与
发表评论: