浏览 7270 次
锁定老帖子 主题:二级菜单效果(3)
精华帖 (0) :: 良好帖 (19) :: 新手帖 (0) :: 隐藏帖 (1)
|
|
---|---|
作者 | 正文 |
发表时间:2009-03-07
最后修改:2009-03-07
html代码结构: <li class="menu"> <div><span class="l"> </span><a href="#">线路</a><span class="r"> </span></div> <ol> <li><a href="#">线路预订</a></li> <li><a href="#">线路管理</a></li> </ol> </li> 菜单按照上面的结构<li class="menu"></li>循环下去
js代码结构: <script type="text/javascript"> $(document).ready(function(){ $(".nav li.menu").each(function(){ $(this).hover( function(){ $(this).addClass("menu_hover"); positionEvent("ol",this); $("ol",this).fadeIn("fast");}, function(){$(this).removeClass("menu_hover");}); if(document.all){ $(this).hover( function(){ $(".nav li.menu").removeClass("menu_hover2"); positionEvent("ol",this); $(this).addClass("menu_hover menu_hover2");}, function(){ $(this).removeClass("menu_hover menu_hover2");} ); } }); }); function positionEvent(object,id){ var liWidth = $(id).width(); var olWidth = $(object,id).width(); var offset = $(id).offset(); var leftPosition = offset.left - (olWidth - liWidth)/2; $(object,id).css("left",leftPosition); } </script> positionEvent()是用来为二级菜单定位的方法,leftPosition值是子菜单相对于父菜单水平居中时距离父容器的左距离。
二级菜单绝对定位后用top:-999px隐藏起来,然后支持伪类的浏览器就可以不运行if(document.all){},通过:hover方法让top:25px就能让二级菜单显示出来达到效果。 ie浏览器不支持伪类,if(document.all){}就是为ie而写的,通过鼠标略过和移走分别添加和移除menu_hover2样式,其目的和:hover一样让top:25px.
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |