欢迎来到HELLO素材网!
丰富的DIV CSS模版、JS,jQuery特效免费提供下载
当前位置:主页 > 建站教程 > JS教程 >

jQuery mousemove()的使用说明

发表于2014-05-09 23:21| 次阅读| 来源管理员| 作者管理员

摘要:当鼠标指针在指定的元素中移动时,就会发生 mousemove 事件。 注意:用户把鼠标移动一个像素,就会发生一次 mousemove 事件。处理所有 mousemove 事件会耗费系统资源。请谨慎使用该事件。
当鼠标指针在指定的元素中移动时,就会发生 mousemove 事件。
注意:用户把鼠标移动一个像素,就会发生一次 mousemove 事件。处理所有 mousemove 事件会耗费系统资源。请谨慎使用该事件。
HTML:
<p>鼠标位于坐标: <span></span>.</p>
Js:
$(document).mousemove(function(e){
    $("span").text(e.pageX + ", " + e.pageY);
});

效果如下截图:

总结:
mouseout(),mouseover()这两个事件在使用的时候需要谨慎,会产生事件冒泡,给我们在做一些效果的时候带来不变。
在写多级滑动菜单时可以体验一下mouseenter/mouseleave和mouseover/mouseout的区别,主要是mouse进入子元素时父元素的事件触发的区别。下面的例子你可以把mouseenter/mouseleave替换成mouseover/mouseout,你就能看出它们之间的差异了!


运行代码保存代码提示:您可以先修改部分代码再运行

当然如果你写的是mouseover/mouseout也是有办法解决的,把上面例子中的js替换成下面的内容,然后运行效果和mouseenter/mouseleave是一样的,这样就可以防止事件冒泡了!
<script type="text/javascript">
function isMouseLeaveOrEnter(e, handler) {  
   if (e.type != 'mouseout' && e.type != 'mouseover') return false;  
   var reltg = e.relatedTarget ? e.relatedTarget : e.type == 'mouseout' ? e.toElement : e.fromElement;  
   while (reltg && reltg != handler)  
       reltg = reltg.parentNode;  
   return (reltg != handler);  
}  
$(function(){
$('#nav li').mouseover(function(){
if (isMouseLeaveOrEnter(event, this)){
$(this).children('ul').slideDown();
}
}).mouseout(function(){
if (isMouseLeaveOrEnter(event, this)){
$(this).children('ul').stop(true,true).hide(); 
}
});
});
</script>
如有问题,欢迎探讨啊!