2011-11-25 2 views
4
난 당신이 얼굴을 가져 가면

MouseMove 이벤트

그냥 초 동안 페이스 북의 사진 태그를 생각하는 이미지 마우스 이벤트의 영역을 결합 할 필요가

: 그것은 그래, 당신에게 이름을 보여줍니다?

잘 내가 좋아, 여기에 우리가 간다, 그러나지도와 citynames와 매우 비슷한 일을했다 :

$('img#mapaMundi').bind('mousemove',function(e){ 

     x = getX(); 
     y = getY(); 
     var found = find(x, y); 

     if (found == undefined) { 
      console.log('There is no tagged city for this position'); 
     } else { 
      show(found); 
     } 

    }); 

그리고이 위대한 작품을, 그것은 (애니메이션과 물건) 원하는 태그를 보여줍니다하지만 마우스 동안 이 영역으로 이동하면, 그 영역으로 이동하고 거기에 마우스를두면 (움직이지 않는 것처럼) 사라질 것입니다.

그리고 .bind ('mouseover')를 사용하면 마우스를 가져갈 때 작동하지 않습니다. 이미지가 가장자리 중 하나에서 계속됩니다.

무엇을 제안합니까? 당신이 jQuery를 사용하는 경우

답변

2
당신은 아마 마우스를 움직일 결합 할 수 있습니다

또는 mouseenter을로 마우스 것을 및 MouseMove 이벤트

http://api.jquery.com/mousemove/

http://api.jquery.com/mouseenter/

그래서 마우스 센터 -> 마우스 마우스

mouseleave -> 아무것도하지 않습니까?

var int = null; 
$('#element').hover(function() { 
int = setInterval(someFunc, 100); 
}, function() { 
clearInterval(int); 
}); 

function someFunc() { 
DO YOUR MOUSEMOVE THINGS 
} 
+0

범위를 보호하기 위해 $ ('# 요소')를 선호합니다. 각 (function() {var int = null; $ this (this) ..hover .. }}); 또는 전체 코드를 자체 호출 익명 함수로 묶습니다. –

+0

$ ('# 요소'). 각각? id가 유일한 경우 의미가 없습니다 –

+0

다른 기능 범위를 만듭니다;) –

3
매 초마다 마우스 위치를 확인하는 기능이있는 마우스 오버하여 setInterval에

, 맑은로 마우스에 간격

.hover()는 모두 마우스 오버를 제공하고

+0

이것은 단지 (하지만 이동하지 않으면 서) 당신은 우리가 –

+0

.hover는()도 핸들러에서 out 핸들러의 간격을 지우려면 :) –

+0

내 업데이트 된 대답을 참조 호버에 발사되어 좋은 –