Masalah dengan tidak mendapat koordinat tetikus yang tepat: menggunakan kanvas HTML5 apabila mengubah saiz halaman
P粉752290033
P粉752290033 2023-09-12 12:20:33
0
1
727

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.

P粉752290033
P粉752290033

membalas semua(1)
P粉769045426

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.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan