2011-11-22 26 views
0

我想在用戶懸停某個元素時發起一個動作,但只有當鼠標來自元素下方時纔會發起動作。即懸停檢查光標的方向,只有當方向爲「向上」(光標從下面進入元素)時纔會觸發函數。用jQuery檢測鼠標方向

有一個關於jQuery懸停與鼠標方向類似的文章,但我假設如果我只需要'向上'和'向下'而不是使用鼠標位置來確定每個可能的角度必須有一個更簡單的解決方案。

+0

鏈接到類似的職位將有很大的幫助。 – Filip

回答

4

一個簡單的解決方案將是:

var mY = 0; 
var over = 0; 
var direction = ''; 
$(document).ready(function(){ 
    $('body').mousemove(function(e){ 
     if (over == 0) mY = e.pageY; 
    }); 
    $('.my_element').bind('mouseover mousemove', function(e){ 
     over = 1; 
     if (e.pageY < mY){ 
      direction = 'From Bottom'; 
     }else{ 
      direction = 'From Top'; 
     } 

    }); 
    $('.my_element').bind('mouseout', function(){ 
     over = 0; 
    }); 
}); 

這只是一個快速,希望它爲你的作品...