Javascript 如何在jquery上区分mouseout/leave事件?
有没有办法知道鼠标事件是否从元素的特定一侧离开?我的意思是,我有一个带有mouseover/mouseenter事件的DIV,我只想在鼠标离开DIV的左侧和右侧时触发该操作,但如果它从底部或顶部离开,则不应触发任何操作Javascript 如何在jquery上区分mouseout/leave事件?,javascript,jquery,Javascript,Jquery,有没有办法知道鼠标事件是否从元素的特定一侧离开?我的意思是,我有一个带有mouseover/mouseenter事件的DIV,我只想在鼠标离开DIV的左侧和右侧时触发该操作,但如果它从底部或顶部离开,则不应触发任何操作 提前谢谢。您可以检查的pageX和pageY属性,并将它们与相关元素的维度进行比较(例如,从和添加到/视情况而定)。这不是一种简单的方法,好吧,但可以完成 鼠标移出时,将鼠标位置与元素位置进行比较 请参见jQuery的鼠标位置教程: (它在教程中使用mousemove,但它也适
提前谢谢。您可以检查的
pageX
和pageY
属性,并将它们与相关元素的维度进行比较(例如,从和添加到/视情况而定)。这不是一种简单的方法,好吧,但可以完成
鼠标移出时,将鼠标位置与元素位置进行比较
请参见jQuery的鼠标位置教程:
(它在教程中使用mousemove,但它也适用于mouseenter/mouseleave)也许您可以使用mouseout jquery函数(或mouseleave?)并添加一个带有javascript的自定义处理程序,以获取元素的坐标、高度和宽度,并跟踪鼠标坐标是否超出边界
i、 e.您的mouse out事件激发,处理程序将元素定位在(x,y)->(10,10),高度为20,宽度为20。如果鼠标坐标在X上大于30,在Y上介于10和30之间,则鼠标的左侧在右侧。对于jQuery,您可以使用事件的offsetX属性,如下所示:
$('#element').mouseout(function(e) {
if (e.offsetX < 0 || e.offsetX > $(this).width()) {
alert('out the side!');
}
});
$(“#元素”).mouseout(函数(e){
如果(e.offsetX<0 | | e.offsetX>$(this).width()){
警惕(‘外面!’);
}
});
我不认为这个属性是可靠的跨浏览器(没有jQuery),我相信jQuery规范化了它(我已经在Chrome和IE7-9中测试过)。基本上,属性包含触发事件时光标相对于目标元素的位置。如果该值小于0或大于元素的宽度,则当光标离开元素边界时,您知道光标位于元素的左侧或右侧之外。我意识到这是一个老问题,但我正在寻找类似的悬停效果。我发现
可能很方便…这个脚本的版本是什么?