jquery 实现多级下拉菜单

本文介绍了一种利用JavaScript实现动态网页菜单项自适应宽度的方法,通过检测父元素的宽度并分配给子元素,确保菜单在不同屏幕尺寸下布局合理。

$(document).ready(function() {
    

    function megaHoverOver(){
        $(this).find(".sub").stop().fadeTo('fast', 1).show();
            
        //Calc#bhate width of all #bh's
        (function($) {
            jQuery.fn.calcSubWidth = function() {
                rowWidth = 0;
                //Calc#bhate row
                $(this).find("ul").each(function() {                    
                    rowWidth = $(this).width();
                });    
            };
        })(jQuery);
        
        if ( $(this).find(".row").length > 0 ) { //If row exists...
            var biggestRow = 0;    
            //Calculate each row
            $(this).find(".row").each(function() {                               
                $(this).calcSubWidth();
                //Find biggest row
                if(rowWidth > biggestRow) {
                    biggestRow = rowWidth;
                }
            });
            //Set width
            $(this).find(".sub").css({'width' :biggestRow});
            $(this).find(".row:last").css({'margin':'0'});
            
        } else { //If row does not exist...
            
            $(this).calcSubWidth();
            //Set Width
            $(this).find(".sub").css({'width' : rowWidth});
            
        }
    }
    
    function megaHoverOut(){
      $(this).find(".sub").stop().fadeTo('fast', 0, function() {
          $(this).hide();
      });
    }


    var config = {    
         sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)    
         interval: 100, // number = milliseconds for onMouseOver polling interval    
         over: megaHoverOver, // function = onMouseOver callback (REQUIRED)    
         timeout: 200, // number = milliseconds delay before onMouseOut    
         out: megaHoverOut // function = onMouseOut callback (REQUIRED)    
    };

    $("#bh-m-xf-menu1topnav li .sub").css({'opacity':'0'});
    $("#bh-m-xf-menu1topnav li").hoverIntent(config);



});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值