一个Canvas如何设置点击事件?

一个Canvas如何设置点击事件?,第1张

<div id=cd>

<canvas width="300" height="300" style="border:1px solid #c3c3c3">

<睁扮/canvas>

</div>

<scripr>

var pp=document.getElementById("cd")

pp.onclick=function(e){

e=e||event

var x=e.clientX-pp.offsetLeft//获取点击后x的坐标

var y=e.clientY-pp.offsetTop//获取点击后y的拍早谈袭碰坐标

alert(x)

alert(y)

}

</scripr>

canvas内容是没有事件的 有事件的只有canvas本身

通过鼠标在canvas上面移动获取鼠标位置以此来改变点击事件可以

比如 一个长方形或者正方形

计算长方形 200px*100px 根据中谨皮歼心点x 鼠标位置x 距离中心点 <100 and y和鼠标y距离<50

或者一个圆的半径为10px 计算方式就是

var X = 鼠标位置 X - 圆中心位置 X

var Y = 鼠祥冲标位置 Y- 圆中心位置 Y

Math.pow((X *X + Y * Y), 0.5)<10

在往其他的一些不规则图形就比较麻烦了需要很高的数学功底

如果不会计算何以试试一些插件

pixi 或者Phase之类 除了基本点击还带一些物理效果握早

只能获取鼠标对于画滑行布的事件,可以根据点击范围判断点击的内容,然后做相应 *** 作

<!doctype html>

<html>

<head></head>

<body>

<canvas id="canvas" width="500" height="500" style = "border:1px solid red"></canvas>

<script>

var rect={x:100,y:100,w:40,h:20}//定义要画的矩形的位置属性

var canvas=document.getElementById('canvas')

var cxt=canvas.getContext('2d')

cxt.fillRect(rect.x,rect.y,rect.w,rect.h)//绘制矩形

canvas.onclick=function(e){//给canvas添加点击事件

    e=e||event//获取事件对象

    //获取事件在canvas中发生的位置

    var x=e.clientX-canvas.offsetLeft

   轮举 var y=e.clientY-canvas.offsetTop

    //如果事件位置在矩形区域中

    if(x>=rect.x&&x<=rect.x+rect.w&&y>=rect.y&&y<=rect.y+rect.h){

        window.open('链接地址')//打开指定链信桐哗接

    }

}

</script>

</body>

</html>


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

原文地址: http://outofmemory.cn/yw/12411754.html

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

发表评论

登录后才能评论

评论列表(0条)

保存