2011-11-22 69 views
0

我想在用户悬停某个元素时发起一个动作,但只有当鼠标来自元素下方时才会发起动作。即悬停检查光标的方向,只有当方向为“向上”(光标从下面进入元素)时才会触发函数。用jQuery检测鼠标方向

有一个关于jQuery悬停与鼠标方向类似的文章,但我假设如果我只需要'向上'和'向下'而不是使用鼠标位置来确定每个可能的角度必须有一个更简单的解决方案。

+0

链接到类似的职位将有很大的帮助。 – Filip

回答

4

一个简单的解决方案将是:

var mY = 0; 
var over = 0; 
var direction = ''; 
$(document).ready(function(){ 
    $('body').mousemove(function(e){ 
     if (over == 0) mY = e.pageY; 
    }); 
    $('.my_element').bind('mouseover mousemove', function(e){ 
     over = 1; 
     if (e.pageY < mY){ 
      direction = 'From Bottom'; 
     }else{ 
      direction = 'From Top'; 
     } 

    }); 
    $('.my_element').bind('mouseout', function(){ 
     over = 0; 
    }); 
}); 

这只是一个快速,希望它为你的作品...