如何用js代碼來(lái)判斷鼠標(biāo)移入的方向呢?基本思路是將一個(gè)元素按照對(duì)角線分成4份,然后按照鼠標(biāo)事件返回的角度值來(lái)判斷。

左上角是坐標(biāo)的原點(diǎn),為了計(jì)算方便,并且可以區(qū)分上下左右,將原點(diǎn)移到元素的中心。
var x=e.clientX-(obj.offsetLeft+obj.offsetWidth/2);
var y=e.clientY-(obj.offsetTop+obj.offsetHeight/2);
接下去就是核心部分了,Math.atan2(y,x)方法返回這個(gè)角的弧度值
Math.round((((Math.atan2(y, x) * (180 / Math.PI)) + 180) / 90) + 3) % 4;

(1)為什么要加180?因?yàn)镸ath.atan2(y,x)返回的是-PI到PI,也就是-180°到180°的角度范圍,加上180之后可以轉(zhuǎn)為0-360°的范圍,便于計(jì)算。
(2)為什么要除以90 因?yàn)橐殖伤膫€(gè)部分,(0-360)/90
(3)為什么要加上3 其實(shí)不加也可以,因?yàn)榧由?80以后,0左邊1上邊2右邊3下邊
加上3之后再取模%4就是0上邊1右邊2下邊3左邊,符合上右下左的css順序。