【问题标题】:The text inside canvas still persists even after clearRect()即使在 clearRect() 之后,画布内的文本仍然存在
【发布时间】:2018-06-07 07:49:00
【问题描述】:

所以我所做的基本上是从this 答案中添加一个删除按钮以清除画布的内容。

HTML:

<button id="delete">delet this</button><br>

JS:

$("#delete").click(function () {
  ctx.clearRect(0, 0, canvas.width, canvas.height);
});

它按预期工作,直到我意识到它不是:如果我单击“绘制文本”按钮,本应消失的文本再次出现。有人知道为什么吗?

有问题的小提琴:http://jsfiddle.net/wgq384et/

【问题讨论】:

    标签: javascript html canvas


    【解决方案1】:

    清除画布时,不会清除数组 texts[]。因此,当您重绘时,它会重绘存储的文本。 只需将 texts=[]; 添加到您的删除按钮 onclick 方法中

    【讨论】:

    • texts.length = 0
    • 是的,这被证实可以解决问题。非常感谢。所以实际上当我点击绘图按钮时,它实际上并不是从文本框中绘制,而是从包含文本框中文本的数组中绘制,对吗?
    猜你喜欢
    • 1970-01-01
    • 2013-07-31
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多