点击矩形时,我想在jcanvas中发出警报消息

时间:2018-06-03 11:42:04

标签: javascript jquery jcanvas

我是画布元素的初学者,但我对谷歌的研究并不顺利......所以,我有画布元素,我在画布上绘制了很多矩形。

目前,当我点击我的形状时,我能够显示如下警告信息:

  

'你点击了矩形54'。

我在html元素上找到了大量关于Javascript菜单的文章,但没有关于Canvas ...

有办法吗?

1 个答案:

答案 0 :(得分:0)

您需要跟踪坐标并检查鼠标是否在其中一个矩形中。

示例:



var canvas  = document.getElementById( 'myCanvas' ),
    ctx = canvas.getContext( '2d' ),
     // [x, y, width, height]
    rects = [ [0, 0, 50, 50, '#f00' ], [60, 0, 50, 50, '#0f0' ], [ 0, 60, 50, 50, '#00f' ], [ 60, 60, 50, 50, '#555' ] ];

for ( var i = 0; i < rects.length; i++ ) {
    // Draw rectangles at (x, y) with (width, height)
    ctx.fillStyle = rects[ i ][ 4 ];
    ctx.fillRect( rects[ i ][ 0 ], rects[ i ][1 ], rects[ i ][ 2 ], rects[ i ][ 3 ] )
}

canvas.addEventListener( 'click', function (e) {
    var x = e.offsetX,
        y = e.offsetY;

    for ( var i = 0; i <rects.length; i++ ) {
        // check if mouse x between x and x + width, also mouse y between y and y + height
        if ( x > rects[ i ][ 0 ] && x < rects[ i ][ 0 ] + rects[ i ][ 2 ] && y > rects[ i ][ 1 ] && y < rects[ i ][ 1 ] + rects[ i ][ 3] ) {
            console.log( 'Rectangle: ' + parseInt( i + 1 ) )
        }
    }
})
&#13;
<canvas id="myCanvas"></canvas>
&#13;
&#13;
&#13;