在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML5  Python/ 寫h5畫布游戲的時候,屏幕做了自適應(yīng)之后,點(diǎn)擊按鈕的位置發(fā)生了改變.

寫h5畫布游戲的時候,屏幕做了自適應(yīng)之后,點(diǎn)擊按鈕的位置發(fā)生了改變.

今天做一個h5游戲的時候,做了自適應(yīng)之后,畫布的大小改變了,可里面的有些按鈕發(fā)現(xiàn)點(diǎn)擊不了,點(diǎn)擊其他地方才有反應(yīng),是什么原因造成的呢?

回答
編輯回答
挽青絲

canvas上實(shí)現(xiàn)click效果,必然是通過計算點(diǎn)擊位置實(shí)現(xiàn)的。
而你做了自適應(yīng)以后,想要點(diǎn)擊的熱點(diǎn)區(qū)域不變的話,就需要拿到你的標(biāo)準(zhǔn)寬高與當(dāng)前頁面的寬高進(jìn)行計算,得出正確的縮放比例后,然后修改點(diǎn)擊的熱點(diǎn)區(qū)域。

類似這樣的:

const standardWidth = 1920

let widthScaleRatio = window.screen.availWidth / standardWidth

let triggerXRange = [0, 800]
$canvas.click(e => {
  if (e.clientX >= triggerXRange[0] * widthScaleRatio && e.clientX <= triggerXRange[1] * widthScaleRatio) {
    console.log('trigger')
  }
})
2018年1月13日 20:44