Javascript/HTML5 - 在鼠标事件上更改文本

Javascript/HTML5 - Changing text on mouse event

我正在尝试创建一个 HTML5 canvas 来显示文本,onmouseover 将删除该文本并显示不同的文本。

这可以很好地改变颜色 - 本质上只是在当前颜色上创建一个新的 canvas。

但是,onmouseover 会显示新文本,但会保留之前的文本。

http://jsfiddle.net/3j2b2egb/

HTML:

<body onload="changeBack()">
    <canvas id="test" 
            width="330" 
            height="200" 
            style="border:1px solid  #787878;" 
            onmouseover="change()" 
            onmouseout="changeBack()">
    </canvas>

Javascript:

function changeBack() {
    var c = document.getElementById("test");
    var ctx = c.getContext("2d");
    ctx.fillStyle = "blue";
    ctx.font = "bold 16px Arial";
    ctx.fillText("hello", 100, 100);
}

function change() {
    var c = document.getElementById("test");
    var ctx = c.getContext("2d");
    ctx.fillStyle = "blue";
    ctx.font = "bold 16px Arial";
    ctx.fillText("world", 100, 100);
}

试试这个。画之前我已经清空了canvas

function changeBack() {
    var c = document.getElementById("test");
    var ctx = c.getContext("2d");
     ctx.clearRect ( 0 , 0 , c.width, c.height );
    ctx.fillStyle = "blue";
    ctx.font = "bold 16px Arial";
    ctx.fillText("hello", 100, 100);
}


function change() {

    var c = document.getElementById("test");
    var ctx = c.getContext("2d");
    ctx.clearRect ( 0 , 0 , c.width, c.height );
    ctx.fillStyle = "red";
    ctx.font = "bold 16px Arial";
    ctx.fillText("world", 100, 100);

}

这是工作演示http://jsfiddle.net/3j2b2egb/1/