問題是,jQuery適用於DOM而不是畫布上的繪畫。你需要做的是將這些點存儲在某處並懸停在畫布元素上,檢查鼠標相對於畫布的座標(例如,如果將鼠標放在畫布的左上角,座標是[ 0,0])在點/形狀的區域內。如果是這樣,鼠標將鼠標懸停在該點上,您可以顯示效果。
僞代碼,以更好地理解:
// adding shapes to the canvas
var shapes = []; // make that rects for simplicity.
For (condition):
shapes.push (new Rect(x,y,width,height));
canvas.rect(x, y, width, height);
// testing hover.
$("#canvas").mousemove(function(e) {
var offsetX = e.pageX - $(this).position().left;
var offsetY = e.pageY - $(this).position().top;
Foreach shape in shapes:
if(shape.contains(offsetX, offsetY)) // a fictious method, implement it yourself...lookup for collision detection; not exactly that but something like that...
Mouse hovers! do something great.
});
好吧,也許找出一個點是否包含在矩形內,你可以使用這樣的事情:
function contains(rect, x, y) {
return (x >= rect.x &&
x <= rect.x + rect.width &&
y >= rect.y &&
y <= rect.y + rect.height)
}
有很多這些框架爲你做這些,嘗試使用一個代替。 – Joseph
「因爲它基於jQuery,所以很容易爲繪圖添加大量效果。」 這是不正確的,你將無法在畫布對象上使用jquery動畫,canvas是一種低級別,你將不得不自己實現所有的動畫效果! jQuery適用於DOM元素 – jazzytomato