国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

無法獲取鼠標(biāo)準(zhǔn)確坐標(biāo)的問題:在調(diào)整頁面大小時使用HTML5畫布
P粉752290033
P粉752290033 2023-09-12 12:20:33
0
1
860

我想從前端專家那里創(chuàng)建這個像素效果。

雖然我能夠在全屏畫布上實現(xiàn)整個像素效果:

const canvas = getElementById('canvas');

canvas.height = window.innerHeight; // 給畫布設(shè)置全屏高度
canvas.width= window.innerWidth; // 給畫布設(shè)置全屏寬度

并且很容易獲取鼠標(biāo)的坐標(biāo)

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

此時畫布的寬度和高度與文檔相等,因此很容易獲得鼠標(biāo)的準(zhǔn)確坐標(biāo)。 但是當(dāng)我嘗試使用800px X 400px的尺寸并在其中使用flexbox(如網(wǎng)站所示)時,我的鼠標(biāo)坐標(biāo)完全混亂了,我花了幾個小時來修復(fù),但無法獲得與上述網(wǎng)站中顯示的準(zhǔn)確性。同時還存在一些與調(diào)整大小相關(guān)的問題。

我想知道如何保持鼠標(biāo)的準(zhǔn)確性。

非常感謝您的幫助。

P粉752290033
P粉752290033

全部回復(fù)(1)
P粉769045426

我相信當(dāng)你使用e.x和e.y時,即使在canvas的事件監(jiān)聽器中使用,它們返回的是相對于整個頁面左上角像素的鼠標(biāo)坐標(biāo),而不僅僅是canvas的坐標(biāo)。如果你所說的"messed up"是指無論你在哪里點擊,像素效果都會以某個固定方向偏移,那么這可能是你的問題,你應(yīng)該用e.clientX和e.clientY代替e.x和e.y。e.clientX中的"client"指的是監(jiān)聽器所針對的元素,并指定相對于該元素而不是頁面給出事件坐標(biāo)。如果以其他方式出現(xiàn)問題,那么我想我沒有答案。

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板