- 浏览: 314681 次
- 性别:
- 来自: 上海
-
文章分类
- 全部博客 (243)
- Core Java (13)
- Java (12)
- Android (2)
- Lucene (3)
- J2EE (3)
- Hibernate (2)
- Jsp & Servlet (3)
- Struts2 (3)
- Spring (5)
- JSF (6)
- RichFaces (2)
- HTML & JS & DOM & CSS (87)
- browser (1)
- Ajax & A4J (2)
- Workflow (1)
- Maven (3)
- Linux (2)
- VM & VBOX (1)
- Tomcat (1)
- Cache (3)
- Others (36)
- design (1)
- PHP (1)
- Try.js (1)
- HTML5 && CSS3 && ECMAScript5 (26)
- 疯言疯语 (5)
- mongodb (2)
- Hardware Common Sence (1)
- RESTful (3)
- Nginx (2)
- web安全 (8)
- Page Design (1)
- web performance (1)
- nodejs (4)
- python (1)
最新评论
-
New_Mao_Er:
求最新的版本破解啊!!!
Omondo eclipseUML插件破解 -
konglx:
讲得仔细,谢了
全面分析 Spring 的编程式事务管理及声明式事务管理 -
cilendeng:
对所有post有效只能使用过滤器
说说Tomcat的Server.xml的URIEncoding=‘UTF-8’配置 -
jiulingchen:
mark了,灰常感谢!
JAVA中最方便的Unicode转换方法 -
anlaetion:
这算法可以有
js 字符串搜索算法
在学习之前我们先了解几个事件对象属性:
target
: 指事件源对象,点击嵌套元素最里层的某元素,该元素就是target。IE6/7/8对应的是srcElement。
currentTarget
: 指添加事件handler的元素本身,如el.addEventListener中el就是currentTarget。IE6/7/8没有对应属性,可在handler内使用this来替代如evt.currentTarget = this。
relativeTarget
: 指事件相关的元素,一般用在mouseover,mouseout事件中。IE6/7/8中对应的是fromElement,toElement。
mouseenter ,mouseleave IE9中仍然支持,mouseenter与mouseover区别在于:在元素内部移动时mouseenter不会触发。如下:
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title> mouseerter与mouseover区别(IE下测试) </title> </head> <body> <div id="result" style="position:absolute;right:100px;top:5px;width:250px;height:400px;border:2px solid gray;overflow:auto;"> </div> <h3> 1,鼠标在div[id=parent1]内部移动时也会触发mouseover事件 </h3> <div id="parent1" style="width:400px;border:1px solid gray;padding:5px;"> <div id="child11" style="width:100px;height:100px;background:gold;float:left;"> Child11 </div> <div id="child12" style="width:100px;height:100px;background:gold;float:right;"> Child12 </div> <div style="clear:both;"> </div> </div> <br/> <h3> 2,鼠标在div[id=parent2]内部移动时也不会触发mouseenter事件 </h3> <div id="parent2" style="width:400px;border:1px solid gray;padding:5px;"> <div id="child21" style="width:100px;height:100px;background:gold;float:left;"> Child21 </div> <div id="child22" style="width:100px;height:100px;background:gold;float:right;"> Child22 </div> <div style="clear:both;"> </div> </div> <script type="text/javascript"> function on(el, type, fn) { el.addEventListener ? el.addEventListener(type, fn, false) : el.attachEvent('on' + type, fn); } function $(id) { return document.getElementById(id); } var p1 = $('parent1'), p2 = $('parent2'); function fn(e) { var d = document.createElement('div'); d.innerHTML = e.type; $('result').appendChild(d); } on(p1, 'mouseover', fn); on(p2, 'mouseenter', fn); </script> <body> </html>
了解了这三个属性的意义后,实现起来就很简单:
E = function() { function elContains(a, b) { try { return a.contains ? a != b && a.contains(b) : !!(a.compareDocumentPosition(b) & 16); } catch(e) {} } function addEvt(el, type, fn) { function fun(e) { var a = e.currentTarget, b = e.relatedTarget; if (!elContains(a, b) && a != b) { fn.call(e.currentTarget, e); } } if (el.addEventListener) { if (type == 'mouseenter') { el.addEventListener('mouseover', fun, false); } else if (type == 'mouseleave') { el.addEventListener('mouseout', fun, false); } else { el.addEventListener(type, fn, false); } } else { el.attachEvent('on' + type, fn); } } return { addEvt: addEvt }; } ();
[转自 :http://www.jzxue.com/wangzhankaifa/javascript-ajax/201103/29-6924.html ]
发表评论
-
循环数组的逻辑怎么写
2015-03-23 10:24 654应用场景这样的: var imgUrls = [ ... -
发布`代码生成器`
2014-11-17 00:45 599闲话不说,直接上地址 npm: https://www. ... -
MutationObserver
2014-10-27 15:29 1110MutationObserver MutationObse ... -
a simple mvvm library - bird
2014-10-09 18:26 737see here:https://github.com/i ... -
遍历dom tree是一件相当耗时的事情
2014-09-23 01:15 805遍历dom tree是一件相当耗时的事情,尤其是在遍历的同时 ... -
今天再讲下js里的继承
2014-09-18 00:27 705js的继承说简单也很简单,请看: function ... -
Text 类型
2014-09-05 18:52 859文本节点由Text类型表 ... -
JavaScript插入动态脚本
2014-09-05 18:47 661动态脚本指的是在页面加载时不存在,但将来的某一时刻通过修改该 ... -
innerHTML插入<style>元素
2014-09-05 18:37 1175通过innerHTML写入<style>元素没 ... -
CSS实现相对浏览器窗口定位彻底研究
2014-09-05 18:33 3744Web Developer / Designer 经常需要将 ... -
JavaScript插入动态样式
2014-09-05 18:07 622能够把CSS样式包含到HTML页面中的元素有两个。其中,& ... -
再理解jQuery;delete原型属性
2014-05-13 22:05 1882以前用jQuery的时候曾粗略看了它的源码,但却不求甚解。 ... -
javascript &&和||
2012-07-23 00:38 708一直以为 && 和 || ... -
undefined 和 void 0 的区别
2012-07-20 11:15 709在读backbone源码时看见这么一段代码: if ( ... -
Fiddler - 前端开发值得拥有
2012-07-16 14:41 848最近换了新工作,搬了新家,换了新室友,一切都在重新开始。 ... -
说说我的web前端之路,分享些前端的好书
2012-07-16 14:38 799WEB前端研发工程师,在国内算是一个朝阳职业,这个领域没 ... -
JavaScript实现 页面滚动图片加载
2012-07-16 14:29 700又到了这个月的博客时间了,原计划是打算在这个月做一个的功 ... -
JavaScript 操作 Cookie
2012-07-16 11:18 697从事web开发也有些日 ... -
Javascript定义类(class)的三种方法
2012-07-12 12:35 595程序员们做了很多探索,研究如何用Javascript模拟”类” ... -
服务端解决跨源共享
2012-06-21 10:18 4527跨源资源共享是web开发领域中一个非常有趣的话题,互联网 ...
相关推荐
为了在非IE浏览器中实现`mouseenter`和`mouseleave`事件,可以采用事件委托的方式,即在一个共同的父元素上监听事件,并根据`target`和`currentTarget`属性来判断事件是从哪个子元素触发的。此外,也可以通过比较...
由于mouseenter和mouseleave在非IE浏览器中不被支持,我们需要使用mouseover和mouseout来模拟这些事件,并通过compareDocumentPosition方法判断鼠标是否在目标元素内。在非IE浏览器中,compareDocumentPosition是一...
`onmouseenter`和`onmouseleave`是IE浏览器最初支持的事件,它们帮助开发者处理了鼠标事件不冒泡的情况,从而更精确地控制事件的触发。在标签中提及的`firefox onmouseenter`表明了需要对Firefox浏览器进行兼容性...
这些事件由IE浏览器首先提出,而后被最新版本的其他主流浏览器支持。mouseenter事件只在鼠标指针进入元素内部时触发一次,而mouseleave事件则在鼠标指针离开元素时触发一次。这样就避免了事件冒泡带来的重复触发问题...
但在非IE浏览器(如Firefox、Chrome等)中,并没有直接对应的事件,需要通过其他方式来实现类似功能。 一种解决方案是利用W3C标准中的 `relatedTarget` 属性。`relatedTarget` 在 `mouseout` 事件中表示鼠标离开的...
使用jQuery的选择器找到图片元素,然后绑定`mouseenter`和`mouseleave`事件。`mouseenter`事件会在鼠标进入元素时触发,`mouseleave`事件则在鼠标离开时触发。这样可以确保在用户将鼠标移开时恢复原始状态。 3. **...
在早期版本中,Silverlight通过ActiveX控制来实现在IE浏览器中的集成。然而,随着技术的发展,HTML5的兴起,以及对跨平台支持的需求增加,ActiveX控制的使用逐渐减少。尽管如此,对于某些遗留系统或特定场景,了解...
5. **浏览器兼容性**:jQuery库本身已经做了良好的跨浏览器兼容处理,但在旧版本的IE浏览器中可能存在问题。确保你的jQuery版本是现代的,并且在项目中考虑使用如Modernizr这样的工具检测浏览器特性,以进行必要的...
这样的修改可以解决IE浏览器中的hover事件触发导致的菜单闪烁问题,提升了用户的交互体验。 此外,这种方法的实施也向我们展示了在进行Web开发时,选择合适事件的重要性。不同的事件有着不同的触发条件和行为特点,...
同时,考虑到不同设备和浏览器的兼容性,确保代码在主流浏览器中都能正常工作,可能需要对旧版本的IE浏览器进行额外的兼容性处理。 总之,“jQuery鼠标悬停导航下划线滑出效果”是一个简单而有效的增强网站导航体验...
例如,为页面加载后和窗口滚动事件添加回调函数: ```javascript $(document).ready(function() { // 页面加载后的初始处理 initImageWall(); // 滚动事件处理 $(window).scroll(function() { ...
3. **jQuery选择器**:使用jQuery选择器找到所有的标题元素,然后为它们绑定`mouseenter`和`mouseleave`事件。这两个事件分别在鼠标进入和离开元素时触发。 4. **事件处理**:在事件处理函数中,我们根据当前元素的...
首先,我们需要监听`mouseenter`和`mouseleave`事件,然后根据事件触发相应的滑动动画。 2. **左右切换效果**: 左右切换效果常见于水平导航菜单,尤其是当菜单项过多,无法在一行内完全显示时。我们可以使用`...
$('#vertical-nav > li').on('mouseenter mouseleave', function(e) { var $this = $(this); if (e.type === 'mouseenter') { $this.find('.subnav').stop().slideDown(300); // 悬停时下拉二级菜单 } else { ...
可能需要对旧版本的IE浏览器进行特殊处理,并考虑触摸设备的交互方式。 以上就是使用jQuery实现右侧水平弹出菜单的基本过程。实际项目中,你可能还需要结合响应式设计,使菜单在不同屏幕尺寸下都能良好显示。同时,...
3. **jQuery事件绑定**:使用jQuery的`mouseenter`和`mouseleave`事件监听用户鼠标进入和离开缩略图的行为。当鼠标悬停在缩略图上时,修改大图的transform属性,使大图缩放;当鼠标离开时,恢复原始大小。 4. **...