`
wenrunchang123
  • 浏览: 251204 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

IE6下onmouseover、onmouseout导航问题解决

 
阅读更多

从百度上搞下来的一段示例代码:

function isMouseLeave(evt, element) {
	if (evt.type != 'mouseout' && evt.type != 'mouseover') return false; 
	var target = evt.relatedTarget ? evt.relatedTarget : evt.toElement;
	while (target && target != element) {
		target = target.parentNode;
	}
	return (target != element);
}

  

当一个标签包含子标签时,鼠标从父标签移动到子标签会连续触发父标签及子标签的onmouseover和onmouseout事件。

 

加入移出移入的代码:

li.onmouseover = function(e) {
        //  XXXX 移入实现
};

li.onmouseout = function(e) {
       e = arguments[0] || window.event;
       if (isMouseLeave(e, li_e)) {
          // XXXX移出实现
       }
};

 

看上去比较完美的实现,不过在实现中还是出了点差错,在万恶的IE6下,如果代码是这样的结构,并且下拉的菜单的下方有其他元素,问题就来了

<ul>
  <li><a></a></li>
  <li><a></a></li>
</ul>

原先的预期是鼠标移到ul上时li里的子菜单内容出现
虽然使用了以上方法,但当鼠标移到第二个li时,菜单又消失了。
搞了一个晚上,最后才发现了css设置的问题,需要将a的width设置到100%,让它充满整个li才不会突然跳出。 

分享到:
评论

相关推荐

    解决ie6下hover不是别问题,多用于导航菜单

    为了解决这个问题,有几种常见的方法可以实现IE6下的`:hover`兼容性: 1. **使用条件注释和专门的IE6 CSS文件**: IE6支持特定的条件注释,允许我们为IE6提供单独的CSS样式表。例如,在HTML头部添加`&lt;!--[if lt IE...

    基于CSS的下拉菜单解决方案的实践.pdf

    本文主要探讨了利用CSS技术实现下拉菜单的实践方法,并针对IE6.0等早期浏览器存在的兼容性问题,提出了解决方案。 **1. CSS技术与下拉菜单** CSS(层叠样式表)是一种用于定义网页元素样式和布局的语言,它可以将...

    兼容ie和firefox滑动门技术

    3. **JavaScript事件处理**:对于不支持`:hover`伪类的浏览器,如IE6,我们可以利用JavaScript监听`onmouseover`和`onmouseout`事件来模拟悬停效果。当鼠标进入元素时,增加宽度;当鼠标离开时,恢复原状。 4. **...

    JS+CSS实现精美的二级导航效果代码

    4. CSS浏览器兼容性:解决IE6不支持`li:hover`的问题。 5. 类操作:用JavaScript添加和移除类来改变元素的样式状态。 通过理解和实践这个实例,你可以更好地掌握前端开发中的动态交互设计,这对于创建吸引用户、...

    onmouse事件总结

    常用于键盘导航、输入验证等功能。 #### 二、其他事件类型简介 除了鼠标事件外,还有多种类型的事件用于处理不同的交互需求,如页面加载/卸载事件、表单事件等: 1. **页面加载/卸载事件**: - **onLoad**: - ...

    迄今为止我用过最经典的javascript课件;有需要的同道人可以尝试

    在JavaScript中,有几种关键的鼠标事件,包括`onMouseDown`、`onMouseUp`、`onMouseOver`、`onMouseOut`和`onMouseMove`。`onMouseDown`和`onMouseUp`分别用于处理鼠标按键的按下和释放,这两个事件可用于实现例如...

    兼容多种浏览器的下拉式二级菜单

    然而,不同浏览器对`:hover`的处理可能有所不同,特别是IE6不支持`:hover`在非链接元素上。为了解决这个问题,可以使用CSS条件注释或者JavaScript进行兼容性处理。基本的CSS样式如下: ```css .menu li { position...

    Js事件大全

    #### (4) `onMouseOver` & `onMouseOut` - **描述**:鼠标移入和移出对象范围时触发的事件。 - **支持浏览器**:IE3+, Netscape2+, Opera3+(`onMouseOver`);IE4+, Netscape3+, Opera3+(`onMouseOut`) - **应用...

    雅虎、网易Ajax标签导航效果实现

    ### 雅虎、网易Ajax标签导航效果实现 #### 概述 本篇文章将通过一个具体实例来介绍如何使用Ajax技术实现类似雅虎、网易等网站中的标签导航效果。Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个...

    JS实现仿京东淘宝竖排二级导航

    JavaScript的关键部分在于对鼠标悬停事件(`onmouseover`)和鼠标移出事件(`onmouseout`)的处理。通过获取一级菜单项`&lt;li&gt;`元素,然后对其分别绑定这两个事件。当鼠标悬停在某一个菜单项上时,对应的一级菜单项下...

    带有css3动画效果的兼容多浏览器简单导航条示例

    `onmouseover`和`onmouseout`事件分别在鼠标进入和离开菜单项时触发`display()`和`hide()`函数。这两个函数通过获取当前`&lt;li&gt;`元素的子元素`&lt;ul&gt;`并改变其`display`样式属性来实现下拉菜单的显示和隐藏。 5. **CSS...

    Javascript鼠标事件大全

    - **示例用途**:实现跟随滚动条的导航栏、侧边栏等。 - **兼容性**:IE4及以上版本、Netscape支持、Opera支持。 8. **onStop(停止事件)**: - **描述**:当用户点击浏览器停止按钮或页面加载中断时触发。 - ...

    JavaScript实现的滑动的下拉菜单.doc

    上述示例已经在 IE6 至 IE8,Firefox,Opera 和 Safari 等浏览器上测试通过。对于不支持 JavaScript 的浏览器,还可以考虑使用渐进增强的方式,使下拉菜单在无脚本的情况下也能正常工作。 最后,你可以通过创建多个...

    javascript事件

    - **支持浏览器**:Firefox 1+、Netscape 6+、IE 3+。 - **应用场景**:跟踪鼠标位置、动态效果。 #### 14. onmouseout - **描述**:当鼠标从某元素移开时触发。 - **支持浏览器**:Firefox 1+、Netscape 4+、IE 4+...

    JS+CSS下拉菜单

    - **IE6和IE7**:这两个版本的IE浏览器在渲染CSS时存在一定的局限性,例如不支持某些CSS3属性。因此,在编写CSS时需特别注意。 - **Firefox**:这是一个较为现代的浏览器,支持广泛的CSS特性和JavaScript标准。 ###...

    jquery专业的导航菜单特效代码分享

    接下来,`stuHover`函数通过`onmouseover`和`onmouseout`事件处理程序,动态地添加和移除`iehover`类名,从而控制下拉菜单的显示和隐藏。当鼠标进入`&lt;li&gt;`元素时,`iehover`类被添加,显示下拉菜单;当鼠标离开时,`...

    js鼠标事件大全(事件说明)

    #### 6. onMouseMove - 鼠标移动事件 - **说明**:当用户的鼠标指针在一个元素上移动时触发。 - **兼容性**:IE4|N4|O4 - **示例用途**:创建动态效果、追踪鼠标位置等。 #### 7. onMouseOut - 鼠标离开事件 - **...

    JavaScript实现简单的二级导航菜单实例

    `onmouseover`, `onmousedown`, `onmouseup`, `onmouseout` 是用于控制菜单显示和隐藏的关键事件。当鼠标进入、按下、抬起或离开某个一级菜单项时,相应的事件处理函数会被调用。 4. **JavaScript类名操作**: ...

    js事件大全.docx

    需要注意的是,不同的浏览器对某些事件的支持可能存在差异,如文档中提到的FF(Firefox)、N(Netscape)和IE(Internet Explorer),开发者在编写代码时应考虑兼容性问题,以确保在各种环境下都能正常运行。

Global site tag (gtag.js) - Google Analytics