2011-03-24 9 views
22

Estoy tratando de lograr una resistencia rudimentaria. En el mousedown, el elemento comienza a arrastrarse, pero no a la misma velocidad que el mouse, por lo que sigo arrastrando cuando el mouse está fuera de la ventana, pero si el mouse no está sobre la página, no puedo obtener eventos de mouseup.JQuery mouseup ventana exterior - posible?

Veo que otras páginas lo hacen así que sé que es posible. Aprecia cualquier ayuda.

Editar: por ejemplo

reproducir cualquier vídeo en Vimeo http://vimeo.com/19831216 asegurarse de que la ventana es lo suficientemente pequeño en la pantalla con el espacio por encima de ella, a continuación, arrastre la barra de progreso del video a la izquierda y la derecha, ahora mover el cursor fuera de la borde superior de la ventana mientras arrastras hacia la izquierda/derecha - ¿ves? Ahora suelte el botón del mouse mientras está fuera de la ventana, arrastrando los extremos y el video continúa reproduciéndose.

Nota: Vimeo tiene la opción de usar un reproductor flash o HTML5 y esto es con el reproductor html5.

Respuesta

47

En realidad se puede obtener el mouseup fuera de la ventana del navegador.

Me funcionó al menos.

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

http://jsfiddle.net/fFeJ6/

Trabajando en Chrome 10 en Ubuntu Maverick.

+6

Gracias, simple ¿eh? Estaba usando 'cuerpo' en lugar de ventana. – hooleyhoop

+0

Sí, y en realidad estaba trabajando en Firefox 4, pero firefox requiere 'alert()' para que un argumento pase al fuego y lo olvidé. ¡Aclamaciones! – thwd

+0

He probado en Windows y Mac, este código funciona. Simplemente agregue una cadena a la función de alerta para algunos navegadores. – Siedrix

0

no puede rastrear los eventos del mouse fuera de la ventana del navegador con javascript.

como se explica here, solo puede comprobar si el mouse sale de la ventana.

+0

Hmm, gracias por el enlace muy útil, parece sugerir que es posible, ¿y usted está diciendo que no? – hooleyhoop

+0

quizás es posible en flash pero no con javascript – felixsigl

+0

¿De verdad? No hay flash en la página de Vimeo que estoy viendo. – hooleyhoop

0

Puede tal vez capturar el evento mouseout y luego llamar a su función mouseup desde allí:

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

No quiero mouseup cuando salgo de la ventana. Quiero continuar capturando eventos de arrastre fuera de la ventana. – hooleyhoop

+0

Esto es un poco lo contrario de lo que quiero hacer – hooleyhoop

+0

@hooleyhoop que no es posible con JS. Sin embargo, puede monitorear eventos desde cualquier ventana usando algo como AutoHotkey. – 10basetom

Cuestiones relacionadas