
1.通过HTML元素属性。简单说来就是在html结构中,给你要添加事件的元素添加一个属性。
属性名为 'on' + 事件名。
如:你要给a元素绑定一个click事件,你就该这么写:
<a href="http://blog.163.com/luping_01/blog/#" onclick='do something'>name</a>
2.通过对象属性。
对象指的是jDOM树里的对象,我们都知道,所有的html元素在DOM(文档对象类型)里都存在一个相应的DOM元素。
给这个DOM元素添加事件等同于方式一。这个属性名也一样:
也为 on + 事件名
如:
html结构:
<a href="http://blog.163.com/luping_01/blog/#" id="n">name</a>
js:
document.getElementById('n').onclick = function(){ //do something}
3.通过W3C监听方式(标准方式)或者IE专属的中间模型添加事件
W3C方式: elemennt.addEventListener(事件名,处理函数引用,true || false)
这里的事件名就是单纯的事件名,不需要加 on ,true表示在事件传播阶段捕获事件,false表示在事件冒泡阶段捕获事件,一般我们设为false!
IE模式: element.attachEvent( 'on' + 事件名,处理函数引用)
注意,IE模式需要加on
你的意思是用canvas2D绘制是吧?实际上,拿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
}
}
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)