Rumah > hujung hadapan web > tutorial js > Bagaimana Saya Mendapatkan Koordinat Klik Tetikus pada Elemen Kanvas?

Bagaimana Saya Mendapatkan Koordinat Klik Tetikus pada Elemen Kanvas?

Susan Sarandon
Lepaskan: 2024-12-08 01:37:11
asal
449 orang telah melayarinya

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

Mendapatkan Koordinat Klik Tetikus pada Elemen Kanvas

Untuk mendapatkan koordinat x dan y klik tetikus berbanding elemen kanvas, ikuti langkah berikut:

  1. Tentukan Acara Pengendali:

    canvas.addEventListener('mousedown', function(e) {
        // Code to get cursor position
    })
    Salin selepas log masuk
  2. Kira Kedudukan Kursor:
    Di dalam pengendali acara, gunakan kaedah getBoundingClientRect() untuk mendapatkan relatif kedudukan kanvas ke skrin dan kemudian tolak koordinat acara klik daripadanya untuk mencari relatif kedudukan:

    const rect = canvas.getBoundingClientRect()
    const x = event.clientX - rect.left
    const y = event.clientY - rect.top
    Salin selepas log masuk
  3. Koordinat Log:
    Akhir sekali, anda boleh mengeluarkan nilai koordinat ke konsol atau menggunakannya dalam aplikasi:

    console.log("x: " + x + " y: " + y)
    Salin selepas log masuk

Contoh:

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)
})
Salin selepas log masuk

Penyelesaian ini menyediakan keserasian merentas pelayar untuk Safari, Opera dan Firefox. Untuk sokongan penyemak imbas lama, pertimbangkan untuk menggunakan jQuery atau pustaka silang penyemak imbas.

Atas ialah kandungan terperinci Bagaimana Saya Mendapatkan Koordinat Klik Tetikus pada Elemen Kanvas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan