javascript - 在 HTML5 <canvas> 上更改 fillText() 的颜色

标签 javascript html html5-canvas

我正在尝试更改 Canvas 上每行消息的颜色,但到目前为止没有成功。我已经尝试为他们中的每一个创建变量,但仍然没有运气。任何帮助将不胜感激。

function initiate(){
    var elem = document.getElementById("canvas");
    canvas = elem.getContext("2d");
    addEventListener("mousemove", animation);

    canvas.shadowColor = "rgba(0, 0, 0, 0.5)";
    canvas.shadowOffsetX = 4;
    canvas.shadowOffsetY = 4;
    canvas.shadowBlur = 5;

    canvas.font = "bold 24px verdana, sans-serif ";
    var welcomeMessage ="Welcome to the store!";
    canvas.textAlign = "start";
    canvas.textBaseline = "bottom";
    canvas.fillText(welcomeMessage, 400, 50);

    canvas.font = "bold 14px verdana, sans-serif";
    var message2 = "Your favorite store for videos games and latest DVDs!"; 
    canvas.textAlign = "start";
    canvas.textBaseline = "bottom";
    canvas.fillText(message2, 400, 100);

    canvas.font = "bold 12px verdana, sans-serif";
    canvas.textAlign = "start";
    canvas.textBaseline = "bottom";
    // Create gradient
    //var gradient=canvas.createLinearGradient(0,0,c.width,0);
    //gradient.addColorStop("0","magenta");
    //gradient.addColorStop("0.5","blue");
    //gradient.addColorStop("1.0","red");
    //canvas.fillStyle = gradient;
    canvas.fillText(" <-- Move your mouse aroud to interact with Macroplay smily!", 400, 250);


}

最佳答案

您必须设置文本的颜色。

像这样:

const canvasObj = document.getElementById('canvas')
const context = canvasObj.getContext('2d')

context.font = "bold 24px verdana, sans-serif ";
var welcomeMessage = "Welcome to the store!";
context.textAlign = "start";
context.textBaseline = "bottom";
context.fillStyle = "#ff0000"; //<======= here
context.fillText(welcomeMessage, 10, 50);

context.font = "bold 14px verdana, sans-serif";
var message2 = "Your favorite store for videos games and latest DVDs!";
context.textAlign = "start";
context.textBaseline = "bottom";
context.fillStyle = "#00ff00"; //<======= and here
context.fillText(message2, 10, 100);
<canvas id="canvas" width="400" height="100"></canvas>

此外,将上下文变量命名为“context”或“cxt”而不是“canvas”可能是个好主意。这样就不会那么困惑了:)

关于javascript - 在 HTML5 <canvas> 上更改 fillText() 的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15750013/

相关文章:

javascript - 为 HTML5 Canvas 上的图像动态添加边框

javascript - 单击时将按钮文本更改为粗体

javascript - 如何在 HTTPS 站点上运行 HTTP 源 JavaScript?

html - 如何通过 *ngFor 显示每行 3 个包含图像和增量数字的 <ion-card>

HTML 视频标签建议

javascript - 数据 URI 在 Firefox 上不显示

javascript - HTML5 canvas 上的设计 - 如何加快渲染速度

javascript - 为什么 'Error: Couldn' t 在 ReactJS for React Hot Loader 中找到相对于目录的预设 "react-hot"...”?

用于本地存储检测的 Javascript Try Catch

javascript - 从完整日期中减去一天