zoukankan      html  css  js  c++  java
  • [Jquery]导航菜单效果-纵向

    $( document ).ready( function(e){

        var $catCont = $( ".cat-cont" );    //二级菜单div
        var $catList = $( ".J_Cat" );       //一级菜单li

        $catList.on( "mouseenter", function(){

            var index = $( this ).index();
            var $curCatList = $( ".cat-cont-bd>li:eq(" + index + ")" );         //鼠标移上去对应的二级菜单的li

            $catList.removeClass( "selected selected-prev" );

            $( this ).addClass( "selected" ).prev().addClass( "selected-prev" );

            $catCont.show();

            $curCatList.css( "display", "list-item").siblings().css( "display", "none" );

            var viewHeight = $( window ).height();
            var catOffsetTop = $( this ).offset().top - $( window ).scrollTop();
            var catBottomGap = viewHeight - catOffsetTop;

            var catPositionTop = $( this ).position().top;

            var catContHeight = $catCont.height();

            if( catBottomGap >= catContHeight ) {
                $catCont.css( "top", catPositionTop );
            }
            if( catBottomGap < catContHeight && viewHeight >= catContHeight ) {
                $catCont.css( "top", catPositionTop - ( catContHeight - catBottomGap ) - 20 );
            }
            if( catBottomGap < catContHeight && viewHeight < catContHeight ) {
                $catCont.css( "top", catPositionTop );
            }
            if( catBottomGap <= 66 ) {
                $catCont.css( "top", catPositionTop - catContHeight + 33 );
            }

        }).on( "mouseleave", function( event ){
            if( !$( event.relatedTarget ).hasClass( "cat-cont-bd" ) ){    //交互灾难:离开一级菜单划不到二级菜单,如何知道离开一级菜单后进入的是二级菜单?jquery提供属性:event.relatedTarget(离开后进入的对象)
                $( this ).removeClass( "selected selected-prev" );
                $catCont.hide();
            }
        });

        $catCont.on( "mouseleave", function(){
            $catCont.hide();
            $catList.removeClass( "selected selected-prev" );
        });
    });

  • 相关阅读:
    CentOS查看CPU信息、位数、多核信息
    Linux常用命令大全
    chmod命令详细用法
    tar命令的详细解释
    yum和rpm命令详解
    LeetCode 241. Different Ways to Add Parentheses
    LeetCode 139. Word Break
    LeetCode 201. Bitwise AND of Numbers Range
    LeetCode 486. Predict the Winner
    LeetCode 17. Letter Combinations of a Phone Number
  • 原文地址:https://www.cnblogs.com/zhangwenkan/p/3875019.html
Copyright © 2011-2022 走看看