从画布中删除元素

时间:2013-12-13 22:23:57

标签: javascript jquery canvas

这是我的jsfiddle:

http://jsfiddle.net/alonshmiel/c4upM/45/

我有两件事需要做才能完成任务:

1)当用户点击小灰色圆圈时,请从小的浅蓝色圆圈中删除该行。

我尝试在此代码中执行操作:

// hide the line of the small light blue circle
var c=document.getElementById(canvas_id);
var ctx=c.getContext("2d");
ctx.clearRect(c.getAttribute('cx')-1,c.getAttribute('cy')-95,2,40);

它有效但不完美(clearRect清除了我要清除的小区域的一部分。)

2)当用户点击小的浅蓝色圆圈时,从小灰色圆圈中删除该行。

任何帮助表示赞赏!

感谢您阅读!

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题,那么你的意思是clearRect会清除你想要清除的部分内容吗?特别是,我假设你的意思是在删除线之后,圆圈下方的灰色弧线留下了一个神器。

问题在于您当前的“修复”不足。就像你在擦除线条之后必须重新绘制蓝色圆圈一样,你还需要重新绘制弧线,因为它的一部分正在用你的clearRect调用擦除。

一般来说,很难确切地说明在某些浏览器中如何实现某些绘制例程。抗锯齿可能打开或关闭(等),导致“修复”困难。一种更简单的方法(除非渲染能力非常重要,否则首选)是在单击圆圈时清除整个背景,然后重新渲染除侵入线之外的所有内容。