Heim >Web-Frontend >js-Tutorial >Wie erhalte ich Mausklick-Koordinaten für ein Canvas-Element?

Wie erhalte ich Mausklick-Koordinaten für ein Canvas-Element?

Susan Sarandon
Susan SarandonOriginal
2024-12-08 01:37:11449Durchsuche

How Do I Get Mouse Click Coordinates on a Canvas Element?

Mausklickkoordinaten auf einem Canvas-Element abrufen

Um die X- und Y-Koordinaten eines Mausklicks relativ zu einem Canvas-Element zu erhalten, folgen Sie den Anweisungen Diese Schritte:

  1. Definieren Sie das Ereignis Handler:

    canvas.addEventListener('mousedown', function(e) {
        // Code to get cursor position
    })
  2. Cursorposition berechnen:
    Verwenden Sie im Ereignishandler die Methode getBoundingClientRect(), um die Position der Leinwand relativ zu ermitteln auf den Bildschirm und subtrahieren Sie dann die Klickereigniskoordinaten davon, um das Relative zu finden Position:

    const rect = canvas.getBoundingClientRect()
    const x = event.clientX - rect.left
    const y = event.clientY - rect.top
  3. Koordinaten protokollieren:
    Abschließend können Sie die Koordinatenwerte an die Konsole ausgeben oder in Ihrem verwenden Anwendung:

    console.log("x: " + x + " y: " + y)

Beispiel:

function getCursorPosition(canvas, event) {
    const rect = canvas.getBoundingClientRect()
    const x = event.clientX - rect.left
    const y = event.clientY - rect.top
    console.log("x: " + x + " y: " + y)
}

const canvas = document.querySelector('canvas')
canvas.addEventListener('mousedown', function(e) {
    getCursorPosition(canvas, e)
})

Diese Lösung bietet browserübergreifende Kompatibilität für Safari, Opera und Firefox. Für die Unterstützung älterer Browser sollten Sie die Verwendung von jQuery oder einer browserübergreifenden Bibliothek in Betracht ziehen.

Das obige ist der detaillierte Inhalt vonWie erhalte ich Mausklick-Koordinaten für ein Canvas-Element?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn