canvas的事件只能监听在canvas标签上,而不嗯那个想其他dom元素那样,所以针对canvas里面的图形监听事件是比较麻烦的。

通过isPointInPath(x,y);  这个方法用于判断某一点的坐标是否在最新绘制的图形内。用法如下:

oC.onmousedown = function(ev){
        var ev = ev || window.event;
        var x = ev.clientX - oC.offsetLeft;
        var y = ev.clientY - oC.offsetTop;
        
        if( oGC.isPointInPath(x,y) ){
            alert(123);
        }
    };

不过这个方法只能判断某点是不是在最新绘制的图形内,所以每次判断,都是要判断的图形重绘。

有一个好用的canvas库,http://jcscript.com/

里面提供了很多方法绘图和事件操作。例如:

jc.start('c1',true);  
    
    jc.circle(100,100,50,'#ff0000',1).click(function(){
        alert(123);
    });
jc.start('c1');

 

posted on 2015-09-16 10:22  toodeep  阅读(238)  评论(0编辑  收藏  举报