2011-09-16 38 views
1

我正在尋找檢測到鼠標移動的第一次出現,所以我可以用jQuery影響目標人類訪問者。任何導致如何我可能會做到這一點。我也想這樣做,而不需要定位類名或對象ID ...所以標籤上的空白目標應該這樣做。有什麼建議?jquery檢測第一個鼠標移動

+0

好了,你可以移動鼠標沒有「做人」。例如,請參閱AutoIt,它會爲您移動鼠標。 – chelmertz

回答

13
$('body').one('mousemove', function() { .... }); 

這將在任何地方尋找鼠標移動,但只會做一次。

注意:這不是一個可靠的方法,智能手機沒有鼠標。而非人類的程序仍然可以移動鼠標。

但它確實回答你的問題。

+1

Man ...那個jQuery ...所有你想要的功能,即使你不知道你想要它們。這篇文章告訴我.one() – Benjam

+0

這最終是最好的解決方案,與jfriends混合在一起:最終代碼看起來像這樣: jQuery(document).one('mousemove',function(){ action這裏... }); 雖然問題,我可以做同樣的第一個向下滾動實例嗎? –

+0

當然,只需用''scroll''替換''mousemove''。我不確定你是否應該將它綁定到文件。 – Ariel

1

鼠標事件冒泡到文檔,除非被阻止。通常你可以看到他們用鼠標移動處理器上的文檔:

document.onmousemove = function() {console.log("mousemove");} 

或jQuery中:

$(document).mousemove(function() { 
    // put your code here 
}); 

如果你只想看到一些初始鼠標移動,你可以刪除該事件處理程序期望的時間或者只是在您檢測到人類時忽略未來的事件。

爲什麼你不打算在不是人類的情況下運行動畫?它會花費你什麼?動畫是客戶端的東西,對吧?機會是,如果它不是人(像某種類型的機器人),它不會運行javascript。

+0

嗨我試過所有的選項,這會導致document.onmousemove包含返回0或1? –

+0

對不起,我不明白你的問題。這意味着什麼「包含返回0或1」? – jfriend00

+0

我在嘗試弄清楚如何在條件函數中使用javascript方法時遇到了問題。 jQuery對我來說非常有意義。 –

1

不知道如果我理解你的目的corretly,但如何對這樣的事情:

var detectMouseMovement = function() { 
    $(document).unbind('mousemove', detectMouseMovement); 

    // do whatever you need to do.. 
}; 

$(document).bind('mousemove', detectMouseMovement);