7
我目前有一個函數可以檢測鼠標輸入的方向。它會爲每個部分返回一個整數(0-3),如下所示。如何檢測鼠標在特定元素上的方向
我試圖找出如何改變這種功能來生成基於此圖的輸出:
基本上,我只是想,如果用戶要弄清楚正在從左側或右側進入圖像。我已經嘗試了幾次嘗試和錯誤,但我不擅長這種數學。
我已經設置了一個JSFiddle with a console output爲例。
來確定方向的功能是:
function determineDirection($el, pos){
var w = $el.width(),
h = $el.height(),
x = (pos.x - $el.offset().left - (w/2)) * (w > h ? (h/w) : 1),
y = (pos.y - $el.offset().top - (h/2)) * (h > w ? (w/h) : 1);
return Math.round((((Math.atan2(y,x) * (180/Math.PI)) + 180))/90 + 3) % 4;
}
凡pos
是一個對象:{x: e.pageX, y: e.pageY}
,和$el
是含有目標元素的jQuery對象。
哇,這是令人尷尬的簡單(我會盡快,我可以接受)。這裏是其他人的JSFiddle鏈接:http://jsfiddle.net/aBK5Q/2/ – ahren
只是一些點點滴滴的評論:你仍然不能真正確定mouseenter運動的方向。你只需確定你的光標第一次到達你圖形的哪一半。所以,如果你快速移動鼠標,你可以從左邊輸入圖形,但最終在右半邊。如果你想處理這種行爲,你可能需要在鼠標移動時保存你的鼠標座標,並在mouseenter事件之後將你的最後座標與座標進行比較。但我認爲上述答案對於任何現實生活中的情況都適用。 – basilikum