Ich möchte wissen, wie Sie einen JQuery-Ereignis-Listener für ein HTML 5-Canvas-Element implementieren, wo ein Mauszeiger in die Zeichenfläche eindringt.Event-Handler für Canvas-Maus tritt auf, während geklickt wird
0
A
Antwort
0
Behalten Sie ein Flag, wenn mousedown
und mouseup
, dann überprüfen Sie dies, wenn Benutzer auf der Leinwand schweben.
var mouseDown = false;
$(document).mousedown(function() {
mouseDown = true;
});
$(document).mouseup(function() {
mouseDown = false;
});
var canvasHover = false;
$('canvas').on('mouseenter', function() {
$('span').html(mouseDown ? 'true' : 'false');
});
canvas {
background:yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<canvas width="300" height="300"></canvas>
<hr />
mouse is down: <span></span>
0
Sie können mousedown- \ mouseup Ereignisse document
und MouseEnter- Ereignis auf Leinwand binden.
Ich würde vorschlagen, Capturing-Phase stattdessen zu verwenden (die jQuery nicht unterstützt), um zu vermeiden, dass jede Weitergabe Ereignis in irgendeiner Weise gestoppt wird.
ein Beispiel Siehe:
document.addEventListener('mousedown', function(e) {
$(this).data('mouseHold', e.which);
}, true);
document.addEventListener('mouseup', function(e) {
$(this).data('mouseHold', false);
}, true);
$('canvas').on('mouseenter', function() {
if ($(document).data('mouseHold')) {
console.log('holding mouse button ' + $(document).data('mouseHold'));
}
});
canvas {
background: blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<canvas></canvas>
Verwandte Themen
- 1. Hyperlinkfarbe ändern, während auf andere Hyperlinks geklickt wird
- 2. Wann tritt Polymorphismus auf
- 3. Wie wird die Flip-Animation zwischen zwei UIViewControllern ausgeführt, während auf den Info-Button geklickt wird?
- 4. EventHandler für spezifische event.topic finden
- 5. Code ausführen, wenn auf TextBox geklickt oder geklickt wird?
- 6. Wie wird eine Klangwiedergabe wiedergegeben, während auf eine Zeichenanwendung geklickt wird?
- 7. Javascript undefinierten Elemente tritt während Regex aufgeteilt
- 8. Ereignis tritt nach der Farberkennung auf
- 9. Anwendung öffnen, wenn auf Benachrichtigung geklickt wird
- 10. Index Fehler tritt auf ...
- 11. Zellinformationen, wenn auf die Zelle geklickt wird
- 12. SWIFT UIButton löschen, wenn auf geklickt wird
- 13. Warum tritt TaskCanceledException auf?
- 14. ClasscastException tritt zufällig auf
- 15. VB6 SSTab Ereignis ändern, während Tab geklickt
- 16. Wie wird EventHandler zur übergeordneten Kontrolle weitergeleitet?
- 17. Mocking Eventhandler
- 18. C# Speicherzuordnung in Stack/Heap tritt auf
- 19. Überlauf tritt bei Multiplikation auf
- 20. Drools: Regel 2 wird nicht ausgelöst, während Regel 1 intern ausgelöst wird (tritt in die Schleife)
- 21. Aktivität wird nicht gestartet, wenn auf das Symbol geklickt wird
- 22. Unterschied zwischen privaten EventHandler und private EventHandler?
- 23. Registrieren EventHandler in CQRS
- 24. CORS-Problem tritt nicht auf, wenn POSTMAN verwendet wird
- 25. LMAX Disruptor Timeout für den EventHandler onEvent
- 26. GridView wird nicht angezeigt, wenn auf die Schaltfläche geklickt wird
- 27. Schaltfläche wird auf falsche Seite umgeleitet, wenn geklickt wird [PHP]
- 28. Verhindern, dass ShowDialog() zurückgegeben wird, wenn auf OK geklickt wird
- 29. asynchrone void Eventhandler - Klärung?
- 30. Zugriff auf RepeaterItem-Steuerelemente in einem EventHandler
den Link überprüfen http://jsfiddle.net/tQyst/9/ –
Sie die Maustaste meine ist, halten, wenn der Cursor Leinwand eingeben? –
Es gibt eine Eigenschaft '.buttons' für das Ereignis' mounenter'. Prüfe das. https://developer.mozilla.org/en-US/docs/Web/Events/mouseenter#Properties kleine Browser-Unterstützung obwohl: / – Kaiido