jQuery纵向导航菜单效果实现方法

 更新时间:2016年12月19日 10:41:02   作者:鬼畜十三  
这篇文章主要介绍了jQuery纵向导航菜单效果实现方法,可实现类似淘宝首页纵向菜单的显示效果,涉及jQuery鼠标响应及页面元素属性动态操作相关技巧,需要的朋友可以参考下

本文实例讲述了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" );
  });
});

更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery切换特效与技巧总结》、《jQuery扩展技巧总结》、《jQuery常用插件及用法总结》、《jQuery拖拽特效与技巧总结》、《jQuery表格(table)操作技巧汇总》、《jquery中Ajax用法总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》及《jquery选择器用法总结

希望本文所述对大家jQuery程序设计有所帮助。

相关文章

  • jQuery表单对象属性过滤选择器实例详解

    jQuery表单对象属性过滤选择器实例详解

    这篇文章主要介绍了jQuery表单对象属性过滤选择器,结合实例形式详细分析了jQuery针对表单元素进行属性过滤操作的具体实现技巧,需要的朋友可以参考下
    2016-09-09
  • jQuery事件与动画超详细讲解

    jQuery事件与动画超详细讲解

    在jquery中,jquery动画事件和动画函数经常用的到,今天小编抽时间给大家整理了些关于常用的jquery动画事件和动画函数,对jquery动画函数和动画事件相关知识感兴趣的朋友一起学习吧
    2022-12-12
  • JQUERY复选框CHECKBOX全选,取消全选

    JQUERY复选框CHECKBOX全选,取消全选

    用JQUERY实现全选和取消全选,减少了我们写JS的麻烦,我们再也不用写那么多代码了,给大家分享两段代码,用JQUERY实现复选框的全选和取消全选.
    2008-08-08
  • 前端LayUI监听事件实例代码汇总

    前端LayUI监听事件实例代码汇总

    在layui中,我们可以通过layui提供的监听方法来对按钮事件进行,监听,下面这篇文章主要给大家介绍了关于前端LayUI监听事件的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-08-08
  • 用JQuery 实现AJAX加载XML并解析的脚本

    用JQuery 实现AJAX加载XML并解析的脚本

    用JQuery 实现AJAX加载XML并解析的脚本
    2009-07-07
  • 从jquery的过滤器.filter()方法想到的

    从jquery的过滤器.filter()方法想到的

    .filter()方法可以接受一个函数作为参数,然后根据函数的返回值判断,这就是jquery选择器的过滤器,下面有个不错的示例,大家可以参考下
    2013-09-09
  • 移动端 一个简单易懂的弹出框

    移动端 一个简单易懂的弹出框

    本文给大家分享一段简单的jquery代码实现一个简单易懂的弹出框,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧
    2016-07-07
  • jqueryUI tab标签页代码分享

    jqueryUI tab标签页代码分享

    这篇文章主要为大家分享了jqueryUI tab标签页代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • jquery属性过滤选择器使用示例

    jquery属性过滤选择器使用示例

    下面以一个示例:所有具有id属性的元素设置样式,动画效果,为大家介绍下jquery属性过滤选择器的使用方法,感兴趣的朋友可以参考下哈
    2013-06-06
  • jQuery实现返回顶部功能适合不支持js的浏览器

    jQuery实现返回顶部功能适合不支持js的浏览器

    a标签指向锚点top,可以在顶部防止一个a name=top的锚点,这样在浏览器不支持js时也可以实现返回顶部的效果了
    2014-08-08

最新评论