JS面向对象方法(一): 使用原生JS 实现导航栏下多级分类弹出效果

 

 

 

 利用二级菜单的onmouseover/out事件 重新构建一级菜单 ".hover" 样式类   

代码如下:

          CSS部分: 在原来的目标:hover样式中 增加 .hover状态

li.app_jd a:hover,li.app_jd a.hover{
    background-position: -126px -397px;
}
li.service>a:hover,li.service>a.hover {
    background-image:url(images/jt_up.jpg);
    background-color:#fff;
    border:1px solid #DDD;
    border-bottom-width:0px;
    position:relative;
    z-index:40;
} 
li.app_jd a:hover,li.app_jd a.hover{
    background-position: -126px -397px;
}

          JS部分:在原来的触发事件上 新增了 二级菜单触发onmouseover/out时 设置各自的一级菜单的className 为 “hover”;

window.onload = function(){
    //顶部导航栏弹出
    $("#top_box .app_jd")[0].οnmοuseοver=$("#top_box .service")[0].οnmοuseοver=showItem;
    $("#top_box .app_jd")[0].οnmοuseοut=$("#top_box .service")[0].οnmοuseοut=hideItem;
    //商品主分类栏弹出
    $("#category")[0].οnmοuseοver=showCate;
    $("#category")[0].οnmοuseοut=hideCate;;
    //商品一级分类弹出二级分类
    var lis = $("#cate_box>li");
    for(var i=0;i<lis.length;i++){
        lis[i].onmouseover=showSubCate;
        lis[i].onmouseout=hideSubCate;
    }
}
function showItem(){
    this.$("[id$='_items']")[0].style.display="block";
    this.$("a")[0].className="hover";
}
function hideItem(){
    this.$("[id$='_items']")[0].style.display="none";
    this.$("a")[0].className="";
}
function showCate(){
    this.$("#cate_box")[0].style.display="block";
}
function hideCate(){
    this.$("#cate_box")[0].style.display="none";
}
function showSubCate(){
    this.$(".sub_cate_box")[0].style.display="block";
    this.$("h3")[0].className="hover";
}
function hideSubCate(){
    this.$(".sub_cate_box")[0].style.display="none";
    this.$("h3")[0].className="";
}

TIPS:

  *越是熟悉 HTML/CSS的数据结构,就越可以在JS部分用更“优雅的”代码来执行更多的事情。

  

 

    

 

转载于:https://www.cnblogs.com/sunyaaa/p/6711402.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值