2011-03-24 13 views
22

Sto provando a realizzare un trascinamento rudimentale. Sul mouse, l'elemento inizia a trascinare, ma non alla stessa velocità del mouse, quindi continuo il trascinamento quando il mouse è fuori dalla finestra, ma se il mouse non si trova sopra la pagina non riesco ad ottenere eventi mouseup.JQuery mouseup fuori dalla finestra - possibile?

Posso vedere altre pagine farlo così so che è possibile. Apprezzo qualsiasi aiuto.

Edit: per esempio

di riprodurre qualsiasi video su Vimeo http://vimeo.com/19831216 assicurarsi che la finestra è abbastanza piccolo sullo schermo con lo spazio sopra di esso, quindi trascinare barra di avanzamento del video a destra ea sinistra, ora spostare il cursore al di fuori della il bordo superiore della finestra mentre si trascina ancora a sinistra/destra - vedi? Ora rilascia il pulsante del mouse mentre ci si trova ancora al di fuori della finestra, trascinando le estremità e il video continua a riprodursi.

Nota: Vimeo ha un'opzione per utilizzare un lettore flash o HTML5 e questo è con il lettore html5.

risposta

47

È effettivamente possibile ottenere il MouseUp al di fuori della finestra del browser.

Ha funzionato almeno per me.

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

http://jsfiddle.net/fFeJ6/

Lavorando su Chrome 10 su Ubuntu Maverick.

+6

Grazie, semplice eh? Stavo usando 'body' invece di window. – hooleyhoop

+0

sì ed effettivamente stava funzionando su firefox 4, ma firefox richiede 'alert()' per avere un argomento passato al fuoco e l'ho dimenticato. Saluti! – thwd

+0

Ho provato su Windows e Mac, questo codice funziona. Basta aggiungere una stringa alla funzione di avviso per alcuni browser. – Siedrix

0

non è possibile tenere traccia degli eventi del mouse al di fuori della finestra del browser con javascript.

come spiegato here è possibile controllare solo se il mouse lascia la finestra.

+0

Hmm, grazie per il collegamento molto utile, sembra suggerire che è possibile, e stai dicendo che non lo è? – hooleyhoop

+0

forse è possibile in flash ma non con javascript – felixsigl

+0

Davvero? Non c'è nessun flash sulla pagina Vimeo che sto guardando. – hooleyhoop

0

Si può forse cogliere l'evento mouseout e quindi chiamare la funzione mouseup da lì:

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

Non voglio il mouse quando esci dalla finestra. Voglio continuare a catturare eventi di trascinamento al di fuori della finestra. – hooleyhoop

+0

Questo è un po 'il contrario di quello che voglio fare – hooleyhoop

+0

@hooleyhoop che non è possibile con JS. È possibile, tuttavia, monitorare gli eventi da qualsiasi finestra utilizzando qualcosa come AutoHotkey. – 10basetom

Problemi correlati