2012-12-10 56 views
1

任何人都可以幫助我,當鼠標從左側或右側進入而不是從任何地方到Javascript中的特定區域時,我怎麼能抓住該事件。我得到了座標代碼,但這不能解決我的問題。對於x,y座標我使用此塊的代碼如何在Javascript中捕獲鼠標輸入?

tempX = e.pageX 
tempY = e.pageY 

在此先感謝

+0

任何可能的解決方案只有在鼠標移動速度相對較慢的情況下才能起作用,否則您將只能收到指針路徑上的幾個點,並且將無法恢復完整路徑並找到其方向。 – Victor

回答

1

您使用

​document.observe("mousemove",function(e){ 
    console.log("X: "+e.pointerX()+", Y: "+e.pointerY()); 
});​​​​​​​​​​​​​ 
正軌

上0

它得到的文件上的鼠標的X和Y座標

我會檢查是否有任何X小於10-給一個小錯誤房間,然後運行代碼基於從左側進來並確保你設置了一個標誌,你正在處理它 - 否則你將有多個調用相同的處理程序。

右側有點棘手,因爲您需要知道屏幕有多寬,然後在右側添加一些小錯誤。

+0

這個問題被標記爲PrototypeJS框架 –

+0

「pointerX」和「pageX」(第一個是Prototype.js屬性,第二個是標準javascript)之間的區別是什麼?請注意,OP已經在使用pageX。 – RobG

+0

'pageX'可能不能跨瀏覽器使用 - PrototypeJS的'pointerX()'使得它跨瀏覽器並且可用於PrototypeJS支持的所有瀏覽器。例如,只有IE9和更高版本支持'pageX',除非您處於強制環境,否則您不能忽略IE8用戶。 –

1

你可以試試這個(可能不是最佳進場):

對頁面的左側以及右側的隱藏/可見DIV。就像一個覆蓋整個頁面的長條。一旦在這些div上觸發了鼠標懸停事件,則可以在相應情況下使相應的標誌爲真。

所以如果leftFlag是真的 - >做了必要的

做righFlag的類似活動。

注: 決策透明度很低(不透明度:0.01)使得DIV可見。事件也被觸發。

+2

隱藏的div不會獲得鼠標事件,但即使在左側和右側有一個可見的「邊框」div,請記住用戶可能會非常快速地移動鼠標,使其在邏輯上已經通過「border」div,但實際上「邊框」沒有收到mousemove事件。 – nnnnnn

+0

對不起賴JS事件不像隱藏的領域像div.Thanks您的建議 –

+0

耶隱藏將無法正常工作,如@nnnnnn建議。嘗試通過使不透明度非常低(不透明度:.01)。這樣它的工作。 –