先看看实际效果的演示
HTML结构部分:
<ul id="nav"> <li><span>HOME</span><a href="#">首页</a></li> <li><span>ABOUT</span><a href="#">我们</a></li> <li><span>SERVICES</span><a href="#">服务</a></li> <li><span>WORK</span><a href="#">工作</a></li> <li><span>CLIENT</span><a href="#">客户</a></li> <li><span>CONTACT</span><a href="#">联系</a></li> </ul>
一个简单的无序列表,但是在a标签的前面添加了span标签,span标签在默认状态下是隐藏的,当鼠标在a标签悬停的时候,span标签将会以滑动的方式显示出来,这样就有了简单的动画效果。好了,再来看看CSS该怎么写。
CSS样式表部分:
#nav {
width:432px;
margin:49px auto 0; /*让元素在页面居中*/
}
#nav li {
width:68px;
height:88px;
float:left;
margin:0 2px;
position:relative; /*li标签相对定位*/
text-align:center;
z-index:5;
display:inline;
}
#nav li span {
color:#fff;
width:68px;
background:url(nav_bg.png) no-repeat 0 0;/*滑动背景添加到span标签中*/
position:absolute; /*span标签绝对定位*/
top:0; left:0;
z-index:10;/*span标签要在a标签的下面,所以层叠顺序要小于a标签的层叠顺序*/
font-size:11px;
height:58px;
padding-top:30px;
display:none;/*在默认状态下span标签是隐藏的*/
}
#nav li a {
color:#202020;
font-size:14px;
letter-spacing:0.5px;
width:68px;
display:block;
position:absolute;/*a标签也同样需要绝对定位*/
top:0; left:0;
z-index:20;/*但是a标签的层叠顺序应该是大于span标签的,这样才能确保a标签不被span标签遮盖住*/
height:35px;
padding-top:55px;
text-decoration:none;
}
jQuery动画部分:
$(function(){
$('#nav li').children('a').hover(function(){
$(this).siblings('span').slideDown(100);
var changeColor = this;
this.timer = setTimeout(function(){
$(changeColor).css({'color':'#fff'});
},100);
},function(){
if(this.timer) clearTimeout(this.timer);
$(this).siblings('span').slideUp(100);
$(this).css({'color':'#202020'});
});
});
转自:http://stylechen.com/blue_slide_nav.html
声明:本文采用 BY-NC-SA 协议进行授权,如无注明均为原创,转载请注明转自 你好!刘
本文地址:基于jQuery的滑动式动画导航栏
本文地址:基于jQuery的滑动式动画导航栏
发表评论