HTML5添加ONTouchEvent事件

HTML5添加ONTouchEvent事件,第1张

实际上,拿canvas2D绘制,只是把image渲染到 canvas(画布上).而实际的事件,就不能像标签那么处理,应该对canvas的事件做处理.

实现逻辑是这样:

1,添加事件监听,比如说,鼠标按下 做什么,滑动 做什么,d起做什么.一般鼠标事件都是判断d起的位置

2,判断有效坐标,在事件中判断坐标位置是否在图片位置,也就是图片在canvas的位置.

ex:

//some code...

canvas.width=400

canvas.height=400

var context2d = canvas.getContext("2d")

var img =new Image()

img.src="xxx/xxx.png"

img.onload=function(){

context2d.drawImage(img,X,Y,WIDTH,HEIGTH)

//X=0,Y=0,W=50,H=50

canvas.addEventListener("mouseup", keyUp, false)

}

function keyUp(evt){

Event_UpX = evt.offsetX

Event_UpY = evt.offsetY

if(Event_UpX>=绘制坐标X&&Event_UpX<=图片宽度){

if(Event_UpY>=绘制坐标Y&&Event_UpY<=图片高度){

//do something

}

}

}

<!DOCTYPE html>

<html>

    <head>

        <meta charset="GB2312">

        <title></title>

        <script type="text/javascript">

            window.onload=function()

            {

                var aDiv = document.getElementsByTagName('div')

                 

                for (var i=0 i<aDiv.length i++)

                {

                    aDiv[i].onmouseover=function()

                    {

                        alert(this.innerHTML)//d出鼠标滑过区域

                    }

                }

 

            }

        </script>

    </head>

    <body>

    <div>111</div>

    <div>222</div>

    <div>333</div>

    </body>

</html>

暴力方法:

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Document</title>

</head>

<body>

<input type="text" id='input' />

<div id='main' style="min-height: 100pxword-break: break-all"></div>

<hr />

<button>断开监听</button>

<script>

document.addEventListener('DOMContentLoaded', () =>{

const input = document.querySelector('input')

const main = document.querySelector('#main')

const button = document.querySelector('button')

input.addEventListener('input', e =>{

main.innerHTML += e.target.value

})

const mutationObs = new MutationObserver(mutations =>{

for (const mutation of mutations) {

if (mutation.type === 'childList') {

console.log('你改变了main里的内容')

}

}

})

mutationObs.observe(main, { childList: true })

button.addEventListener('click', () =>{

mutationObs.disconnect()

})

})

</script>

</body>

</html>

参考


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11887237.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-19
下一篇2023-05-19

发表评论

登录后才能评论

评论列表(0条)

    保存