JavaScript/HTML Canvas : clearing a text box

标签 javascript html canvas

我一直在尝试通过 HTML5 Canvas 使用 Adob​​e Flash CC 创建交互式 map 。主要思想:将鼠标悬停在 map 上的某个对象上,带有相应信息的文本框会出现在右侧。问题是,我已经成功创建了一个文本框,但是每次我将鼠标悬停在文本框上时,文本框都会一遍又一遍地出现在顶部,并且文本每次都变得越来越厚。每次添加文本之前如何删除文本?也许您还有其他建议? 代码如下:

function makeText(x, y, w, h, htmlText) {
// create and populate element
stage.removeChild(content);
stage.update();
var e = document.createElement("div");
e.style.fontSize = "14px";
e.style.fontFamily = "arial, verdana, sans-serif";
e.style.visibility = "hidden";
e.style.position = "absolute";
e.style.left = 0;
e.style.top = 0;
e.style.width = w + "px";
e.style.height = h + "px";
e.style.overflow = "auto";
e.style.overflowX = "hidden";
e.innerHTML = htmlText;

document.body.appendChild(e);
var content = new createjs.DOMElement(e);
content.x = x;
content.y = y;

return stage.addChild(content);
}

这是我调用该函数的方式:

  function fl_MouseOverHandler_5(){
    var canvas; 
    var text;
    var count = 0; 
 var kauno_pr = "text";
makeText(400,300,200,200,kauno_pr);   
}

我还尝试添加 stage.removeChild(content);添加之前,但它似乎不起作用。

任何帮助表示赞赏!

最佳答案

这样的事情应该有效:

var previousElement;
function fl_MouseOverHandler_5(){
    var canvas; 
    var text;
    var count = 0; 
    var kauno_pr = "text";

    if(previousElement){
        stage.removeChild(previousElement);
    }

    previousElement = makeText(400,300,200,200,kauno_pr);   
}

您只需将创建的元素存储在变量中即可。

关于JavaScript/HTML Canvas : clearing a text box,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29920129/

相关文章:

javascript - 将 Canvas 的属性宽度设置为百分比值

javascript - 获取 Contenteditable div 中图像的 alt 属性并替换图像

javascript - Fabric.js 中图像对象的问题

javascript - Bootstrap 中的响应式 Canvas

javascript - 即使 DropZone 中的 maxFilesize 设置为 500,也无法加载文件大小超过 20MB 的文件

javascript - webpack 2 预期 '!' 错误与导入一起使用

javascript - jQuery 没有捕获该事件

html - 如何在 columner 中制作一个在 css/html 中响应的词汇表?

html - 悬停元素时添加背景图像

javascript - HTML5 Canvas 位于列表内,无法在所有列表上绘制图像