一级菜单hover进入二级菜单,二级菜单不消失
2017-05-28 19:02
459 查看
在写分级菜单时遇到问题:
设置一级菜单:hover效果显示二级菜单时,当鼠标从一级菜单移入二级菜单时,一级菜单因失去鼠标而导致二级菜单消失
根据一二级菜单DOM关系提出不同思路:
一级菜单包裹二级菜单
<a>
一级菜单
<ul>
<li>二级菜单</li>
</ul>
</a> 此种情况可直接使用css:hover选择器效果即可
一二级菜单为兄弟关系
<a class="sctnav_list_Details" href="javascript:">
一级菜单
</a>
思路:使用padding内边距属性,使一级菜单的内边距可以到达二级菜单的范围,同时设置如下css属性:
注:如果出现移出一级菜单时二级菜单消失,多是一级菜单与二级菜单之间存在间隙(包括两者边框) .sctnav_list_Details:hover ~ .carousel_Details,
.sctnav_list_Details ~ .carousel_Details:hover {
display: block;
}
两者DOM不存在关系时:
思路:
1)使用定时器,在移出一级菜单时创建定时器事件,延迟隐去二级菜单
在二级菜单中建立移入移出事件:hover(),移入时清除上一步骤的定时器,移出时清除定时器并隐去二级菜单,注:此处不适合建立单纯mouseover()事件,会导致直接从二级菜单移出而二级菜单不消失问题
2)使用鼠标定位,在移出一级菜单时判断鼠标是否进入二级菜单的范围
获取二级菜单DOM的坐标:
$("section
.nav_float").offset().top ; /*获取当前元素距离document文档顶部距离*/
获取鼠标坐标
console.log(e.pageY);/*以当前文档为坐标定位Y轴距离*/
console.log(e.clientY);/*以当前页面窗口为坐标定位Y轴距离,不受滚动条影响*/
此处需注意采用的定位坐标是相对与文档还是可视窗口,鼠标定位与DOM定位选择需一致
另外还有定位坐标方法的浏览器兼容问题
设置一级菜单:hover效果显示二级菜单时,当鼠标从一级菜单移入二级菜单时,一级菜单因失去鼠标而导致二级菜单消失
根据一二级菜单DOM关系提出不同思路:
一级菜单包裹二级菜单
<a>
一级菜单
<ul>
<li>二级菜单</li>
</ul>
</a> 此种情况可直接使用css:hover选择器效果即可
一二级菜单为兄弟关系
<a class="sctnav_list_Details" href="javascript:">
一级菜单
</a>
<div class=" carousel_Details"> <ul class=" carousel_left_Details">
<li>二级菜单</li>
</ul>
</div>
思路:使用padding内边距属性,使一级菜单的内边距可以到达二级菜单的范围,同时设置如下css属性:
注:如果出现移出一级菜单时二级菜单消失,多是一级菜单与二级菜单之间存在间隙(包括两者边框) .sctnav_list_Details:hover ~ .carousel_Details,
.sctnav_list_Details ~ .carousel_Details:hover {
display: block;
}
两者DOM不存在关系时:
思路:
1)使用定时器,在移出一级菜单时创建定时器事件,延迟隐去二级菜单
在二级菜单中建立移入移出事件:hover(),移入时清除上一步骤的定时器,移出时清除定时器并隐去二级菜单,注:此处不适合建立单纯mouseover()事件,会导致直接从二级菜单移出而二级菜单不消失问题
2)使用鼠标定位,在移出一级菜单时判断鼠标是否进入二级菜单的范围
获取二级菜单DOM的坐标:
$("section
.nav_float").offset().top ; /*获取当前元素距离document文档顶部距离*/
获取鼠标坐标
console.log(e.pageY);/*以当前文档为坐标定位Y轴距离*/
console.log(e.clientY);/*以当前页面窗口为坐标定位Y轴距离,不受滚动条影响*/
此处需注意采用的定位坐标是相对与文档还是可视窗口,鼠标定位与DOM定位选择需一致
另外还有定位坐标方法的浏览器兼容问题
相关文章推荐
- 鼠标悬停hover显示子菜单移入二级后子菜单不消失
- ztree二级菜单有查询条件,ztree一级菜单没有查询条件
- k3调拨单中新增一级菜单及二级菜单
- html和css实现一级菜单和二级菜单学习笔记
- 兼容IE6的一级横二级坚菜单
- vtiger7 自定义菜单 (一级菜单、二级菜单)
- 一个不错的tab效果的导航菜单(一级和二级为横向)
- js实现 导航栏二级菜单hover下拉效果
- android实现底部导航栏和顶部导航栏(相当于网页上的一级菜单和二级菜单)
- 动态建立右键菜单(一级/二级/三级) 响应鼠标单击事件及修改项的内容
- 【荐】JS一级横向滑动,二级竖向下拉的综合菜单
- JQuery中鼠标划过一级菜单,有二级菜单的就显示的处理
- 一级菜单 二级菜单的联动
- html和css实现一级菜单和二级菜单学习笔记
- jquery异步调用自数据库获取值通过knockoutjs赋值给职位二级菜单导致的jquery的hover事件不执行的例子
- HTML案例—很讨巧的一种js+css制作hover模式展示二级菜单方法
- JS+CSS全力打造的一级横向滑动,二级竖向下拉综合菜单
- Android学习笔记 一级二级菜单的使用
- Android学习笔记之Menu一级菜单、二级菜单的使用
- 一级二级菜单slideToggle