【发布时间】:2016-04-19 17:48:47
【问题描述】:
我在 Jquery 中有这段代码。我想更改鼠标悬停时各个形状的不透明度百分比。我一般不会有这种问题,但是我对canvas不是很了解……
任何帮助/建议将不胜感激!提前致谢!
var canvas = document.getElementById('canvas');
if (canvas.getContext) {
var ctx = canvas.getContext('2d');
ctx.canvas.addEventListener('mousemove', function(event){
var mouseX = event.clientX;
var mouseY = event.clientY;
var status = document.getElementById('status');
status.innerHTML = mouseX + " | " + mouseY;
});
ctx.beginPath();
ctx.moveTo(67, 254);
ctx.lineTo(57, 180);
ctx.lineTo(87, 92);
ctx.lineTo(158, 116);
ctx.lineTo(193, 168);
ctx.lineTo(196, 244);
ctx.lineTo(135, 302);
ctx.lineTo(67, 254);
ctx.fillStyle = 'rgba(255, 240, 0, 0.5)';
ctx.fill();
ctx.closePath();
ctx.beginPath();
ctx.moveTo(211, 156);
ctx.lineTo(209, 96);
ctx.lineTo(226, 37);
ctx.lineTo(292, 49);
ctx.lineTo(307, 92);
ctx.lineTo(305, 154);
ctx.lineTo(286, 168);
ctx.lineTo(258, 157);
ctx.lineTo(254, 171);
ctx.lineTo(211, 156);
ctx.fillStyle = 'rgba(255, 240, 0, 0.5)';
ctx.fill();
ctx.closePath();
ctx.beginPath();
ctx.moveTo(230, 368);
ctx.lineTo(228, 274);
ctx.lineTo(259, 154);
ctx.lineTo(396, 202);
ctx.lineTo(406, 258);
ctx.lineTo(398, 352);
ctx.lineTo(357, 456);
ctx.lineTo(230, 368);
ctx.fillStyle = 'rgba(255, 240, 0, 0.5)';
ctx.fill();
ctx.closePath();
ctx.beginPath();
ctx.moveTo(338, 183);
ctx.lineTo(340, 132);
ctx.lineTo(357, 62);
ctx.lineTo(453, 80);
ctx.lineTo(455, 132);
ctx.lineTo(449, 196);
ctx.lineTo(428, 240);
ctx.lineTo(400, 228);
ctx.lineTo(395, 202);
ctx.lineTo(338, 183);
ctx.fillStyle = 'rgba(255, 240, 0, 0.5)';
ctx.fill();
ctx.closePath();
}
【问题讨论】:
-
使用
context.isPointInPath来测试鼠标是否在您的路径之一内。这是一个说明性的先前Q&A。 -
谢谢你的回答,其实我之前也尝试过这种代码,但是我没有在那种代码中应用坐标...无论如何,我会继续尝试
标签: jquery canvas 2d onmouseover