javascript - Canvas :在填充矩形顶部绘制线条

标签 javascript canvas drawing lines

我这里有一个函数,应该在中间绘制一个正方形和一个加号,然后如果鼠标悬停在它上面则反转颜色。如果鼠标不在顶部,它可以正常工作,但是一旦被填充,加号就会消失。我认为它被掩盖了。

function drawAdd(cx, cy, btnW, btnH, mouse)
{
    var getID = document.getElementById("canvas_1");
    var color = "black";
    var px = cx + btnW/2;
    var py = cy + btnH/2;

    if (getID.getContext)
    {
        var ctx = getID.getContext("2d");

        ctx.clearRect(cx, cy, btnW, btnH);
        ctx.lineWidth = "10";
        ctx.fillStyle = "black";

        if(mouse)
        {
            ctx.fillRect(cx, cy, btnW, btnH);
            color = "white";
        }
        else
        {
            ctx.strokeRect(cx, cy, btnW, btnH);
        }

        ctx.beginPath();
        ctx.lineWidth = "20";
        ctx.fillStyle = color;
        ctx.moveTo(px - 40, py);
        ctx.lineTo(px + 40, py);
        ctx.moveTo(px, py - 40);
        ctx.lineTo(px, py + 40);
        ctx.stroke();
        ctx.closePath();
    }
}

我在这里做错了什么?

最佳答案

您需要将 ctx.fillStyle = color 替换为 ctx. StrokeStyle = color,因为线条颜色是由 strokeStyle 设置的,而不是 fillStyle。

这是一个工作 JSFiddle .

关于javascript - Canvas :在填充矩形顶部绘制线条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22897546/

相关文章:

javascript - <pre> 标签内的 Html 代码,innerHTML 不返回所有代码

javascript - 将图像拖放到 Canvas 上后允许拖动

JPanel 上的 Java Path2D.Double 都画有 'tail'

android - 在 Canvas 上撤消和重做

Java绘图编辑器小程序

javascript - 如何从 YouTube 检索标题+说明

javascript - 以可在 Whatsapp 上共享的格式保存 MediaRecorder 输出

javascript - 在Fabric.js中输出canvas JSON中的特定变量

javascript - 如何使用 powershell 更改列值的格式?

javascript - HTML5 Canvas 图像移动像素化