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


Posted in Javascript onDecember 19, 2016

本文实例讲述了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程序设计有所帮助。

Javascript 相关文章推荐
jquery json 实例代码
Dec 02 Javascript
JQuery 图片的展开和伸缩实例讲解
Apr 18 Javascript
一个获取第n个元素节点的js函数
Sep 02 Javascript
JQuery实现鼠标移动图片显示描述层的方法
Jun 25 Javascript
jQuery+CSS3实现3D立方体旋转效果
Nov 10 Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
Dec 14 Javascript
jQuery遮罩层实例讲解
May 11 jQuery
vue2.x select2 指令封装详解
Oct 12 Javascript
JavaScript编程设计模式之观察者模式(Observer Pattern)实例详解
Oct 25 Javascript
JavaScript事件冒泡与事件捕获实例分析
Aug 01 Javascript
JavaScript类型相关的常用操作总结
Feb 14 Javascript
vue跳转方式(打开新页面)及传参操作示例
Jan 26 Javascript
简单理解js的冒泡排序
Dec 19 #Javascript
JS瀑布流实现方法实例分析
Dec 19 #Javascript
移动端日期插件Mobiscroll.js使用详解
Dec 19 #Javascript
JavaScript闭包和范围实例详解
Dec 19 #Javascript
JS前端笔试题分析
Dec 19 #Javascript
利用vue实现模态框组件
Dec 19 #Javascript
JS中如何实现复选框全选功能
Dec 19 #Javascript
You might like
phpmyadmin配置文件现在需要绝密的短密码(blowfish_secret)的2种解决方法
2014/05/07 PHP
PHP页面转UTF-8中文编码乱码的解决办法
2015/10/20 PHP
PHP实现绘制二叉树图形显示功能详解【包括二叉搜索树、平衡树及红黑树】
2017/11/16 PHP
基于prototype的validation.js发布2.3.4新版本,让你彻底脱离表单验证的烦恼
2006/12/06 Javascript
jQuery 研究心得 取得属性的值
2007/11/30 Javascript
jQuery+css实现图片滚动效果(附源码)
2013/03/18 Javascript
JavaScript实现页面实时显示当前时间的简单实例
2013/07/20 Javascript
JavaScript模仿Pinterest实现图片预加载功能
2016/10/25 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
Node.js发送HTTP客户端请求并显示响应结果的方法示例
2017/04/12 Javascript
Node.js+Express+MySql实现用户登录注册功能
2017/07/10 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
2017/08/17 Javascript
javascript数组拍平方法总结
2018/01/20 Javascript
详解React项目的服务端渲染改造(koa2+webpack3.11)
2018/03/19 Javascript
基于Webpack4和React hooks搭建项目的方法
2019/02/05 Javascript
[51:36]EG vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
python使用xlrd和xlwt读写Excel文件的实例代码
2018/09/05 Python
Python中的asyncio代码详解
2019/06/10 Python
python使用Geany编辑器配置方法
2020/02/21 Python
在ipython notebook中使用argparse方式
2020/04/20 Python
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
最新的大学生找工作自我评价
2013/09/29 职场文书
门卫人员岗位职责
2013/12/24 职场文书
计算机专业优秀大学生自我总结
2014/01/21 职场文书
个人充满哲理的自我评价
2014/02/20 职场文书
财务内勤岗位职责
2014/04/17 职场文书
团队队名口号大全
2014/06/06 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
人力资源管理毕业生自荐信
2014/06/26 职场文书
写给医院的感谢信
2015/01/22 职场文书
2015年少先队活动总结
2015/03/25 职场文书
2015年终个人政治思想工作总结
2015/11/24 职场文书
《只有一个地球》教学反思
2016/02/16 职场文书
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
5人制售《绝地求生》游戏外挂获利500多万元 被判刑
2022/03/31 其他游戏
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android