javascript判斷鼠標(biāo)移入方向

如何用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順序。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容