2011-03-24 7 views
22

초보적인 드래그를 달성하려고합니다. mousedown에서 항목은 드래그를 시작하지만 마우스와 같은 속도가 아니기 때문에 마우스가 창 밖으로 나올 때 드래그를 계속합니다. 그러나 마우스가 페이지 위로 이동하지 않으면 mouseup 이벤트를 얻을 수 없습니다.JQuery 마우스 업 창 밖 - 가능?

다른 페이지가 이것을 볼 수 있으므로 가능하다는 것을 알고 있습니다. 어떤 도움을 주시면 감사하겠습니다.

편집 : 예

창, 그럼 이제 외부에서 커서를 이동, 비디오의 진행 표시 줄이 왼쪽과 오른쪽으로 드래그 위에 공간이 화면에 충분히 작은 있는지 확인 메오 http://vimeo.com/19831216에있는 모든 비디오를 재생 왼쪽/오른쪽으로 드래그하면서 윈도우의 위쪽 가장자리 - 볼까요? 이제 창 밖에서 마우스 버튼을 놓습니다. 드래그 끝과 비디오 재생이 계속됩니다.

참고 : Vimeo에는 플래시 플레이어 또는 HTML5 플레이어를 사용할 수있는 옵션이 있으며 이는 html5 플레이어에서 제공됩니다.

답변

47

당신은 실제로 브라우저의 창 밖에 모르기 때문에 mouseUp를 얻을 수 있습니다.

그것은 적어도 나를 위해 일했다. 우분투 코디에 크롬 10에서 작업

http://jsfiddle.net/fFeJ6/

$(function(){ 
    $(window).mouseup(function(){ 
     alert('mouse up'); 
    }); 
}); 
.

+6

고마워요, 간단 해요? 나는 창 대신에 '몸'을 사용했다. – hooleyhoop

+0

네, 실제로 파이어 폭스 4에서 작동하고 있었지만 파이어 폭스는'alert()'에 인수를 전달해야합니다. 잊어 버렸습니다. 건배! – thwd

+0

Windows 및 Mac에서 테스트 한 결과이 코드가 작동합니다. 일부 브라우저에서는 경고 기능에 문자열을 추가하기 만하면됩니다. – Siedrix

0

자바 스크립트로 브라우저 창 외부에서 마우스 이벤트를 추적 할 수 없습니다.

설명 된대로 here 마우스가 창 밖으로 나간 경우에만 확인할 수 있습니다.

+0

흠, 매우 유용한 링크를 주셔서 감사합니다. 가능한 것이고 귀하가 말하는 것이 아닙니다. – hooleyhoop

+0

플래시에서 가능하지만 자바 스크립트로는 가능하지 않습니다 – felixsigl

+0

정말요? 내가보고있는 Vimeo 페이지에는 플래시가 없습니다. – hooleyhoop

0

당신은 아마 mouseOut 이벤트를 캐치하고 거기에서 mouseup에 함수를 호출 할 수 있습니다 :

$(window).mouseout(function() { $(item).mouseup(); }); 
+0

창을 떠날 때 mouseup하고 싶지 않습니다. 창 밖에서 드래그 이벤트를 캡처하고 싶습니다. – hooleyhoop

+0

이것은 내가하고 싶은 것의 반대입니다. – hooleyhoop

+0

@hooleyhoop JS에서는 불가능합니다. 그러나 AutoHotkey와 같은 것을 사용하여 모든 창에서 이벤트를 모니터링 할 수 있습니다. – 10basetom