cari
Soal Jawab Masalah dengan tidak mendapat koordinat tetikus yang tepat: menggunakan kanvas HTML5 apabila mengubah saiz halaman

0

Saya mahu mencipta Pixel Effect ini daripada pakar bahagian hadapan.

Walaupun saya dapat mencapai keseluruhan kesan piksel pada kanvas skrin penuh:

const canvas = getElementById('canvas');

canvas.height = window.innerHeight; // 给画布设置全屏高度
canvas.width= window.innerWidth; // 给画布设置全屏宽度

Dan mudah untuk mendapatkan koordinat tetikus

const mouse = {
  x: undefined,
  y: undefined
}
canvas.addEventListner('mousemove', function(e) {
  mouse.x = e.x;
  mouse.y = e.y;
}

Pada ketika ini, lebar dan ketinggian kanvas adalah sama dengan dokumen, jadi mudah untuk mendapatkan koordinat tepat tetikus. Tetapi apabila saya cuba menggunakan dimensi ketepatan 800px. Terdapat juga beberapa isu yang berkaitan dengan mengubah saiz.

Saya ingin tahu cara mengekalkan ketepatan tetikus.

Terima kasih banyak atas bantuan anda.

Your Answer
serahkan

1 jawapan
0

Saya percaya bahawa apabila anda menggunakan e.x dan e.y, walaupun digunakan dalam pendengar acara kanvas, mereka mengembalikan koordinat tetikus berbanding piksel kiri atas keseluruhan halaman, bukan hanya koordinat kanvas. Jika dengan "kacau" anda bermaksud kesan piksel diimbangi dalam beberapa arah tetap tidak kira di mana anda mengklik, maka ini mungkin masalah anda dan anda harus menggantikan e.x dan e.y dengan e.clientX dan e.clientY . "klien" dalam e.clientX merujuk kepada elemen yang disasarkan oleh pendengar dan menentukan bahawa koordinat acara diberikan relatif kepada elemen dan bukannya halaman. Jika soalan itu timbul dengan cara lain, maka saya rasa saya tidak mempunyai jawapannya.

2023-09-13 09:20:33

serahkan

Hot Tools

vc9-vc14 (32+64 bit) koleksi perpustakaan masa jalan (pautan di bawah)

vc9-vc14 (32+64 bit) koleksi perpustakaan masa jalan (pautan di bawah)

Muat turun koleksi perpustakaan runtime yang diperlukan untuk pemasangan phpStudy

VC9 32-bit

VC9 32-bit

VC9 32-bit phpstudy pustaka masa jalan persekitaran pemasangan bersepadu

Kotak alat pengaturcara PHP versi penuh

Kotak alat pengaturcara PHP versi penuh

Programmer Toolbox v1.0 PHP Persekitaran Bersepadu

VC11 32-bit

VC11 32-bit

VC11 32-bit phpstudy pustaka masa jalan persekitaran pemasangan bersepadu

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan