【问题标题】:Watermark to appear on canvas after submit提交后水印出现在画布上
【发布时间】:2015-05-12 10:51:34
【问题描述】:

我有一个 HTML 画布,您可以为圆圈选择颜色和大小,当点击时,圆圈会出现。现在,我希望在绘制圆圈之前看到带有文本“Hello”的水印,然后在开始绘制时消失,并且画布恢复为白色。 我还有一个删除所有圆圈的提交按钮,我希望在单击按钮时出现水印。 我很抱歉我的英语不好,但我希望你能理解我的问题。

请看这个jsFiddle

Javascript

function initiateCanvasCircle() {
var context = document.getElementById('myCanvas').getContext('2d'),
    input = document.getElementById( 'myColor' ),
    size = document.getElementById( 'mySize' ),
    watermark = document.getElementById( 'myWatermark' );
context.canvas.addEventListener('mousemove', function(event) {
    var mouseX = event.clientX - context.canvas.offsetLeft;
    var mouseY = event.clientY - context.canvas.offsetTop;

});

context.canvas.addEventListener('click', function(event) {
    var mouseX = event.clientX - context.canvas.offsetLeft;
    var mouseY = event.clientY - context.canvas.offsetTop;

    context.beginPath();
    context.arc(mouseX, mouseY, size.value / 2, 0, 2 * Math.PI, false);


    context.fillStyle = input.value ? '#' + input.value : '#333';

    context.fill();
});

}

function circle() {
    window.addEventListener('click', function(event) {
        initiateCanvasCircle();
    });
}

function drawCircle() {
    circle();
}

initiateCanvasCircle();



// Button   
var canvas = document.getElementById('myCanvas');
var context = canvas.getContext('2d');

  document.getElementById('clear').addEventListener('click', function() {
    context.clearRect(0, 0, canvas.width, canvas.height);
  }, false);
  myCanvas.addEventListener('click', function() { }, false);

我真的希望你能帮助我了解如何让水印按照我想要的方式运行。

【问题讨论】:

    标签: javascript html canvas submit watermark


    【解决方案1】:

    我对你的Fiddle做了一些小改动

    添加了这两个函数来添加文本和清除画布:

    function drawText() {
         var x = canvas.width / 2;
         var y = canvas.height / 2;
    
          context.font = '30pt Calibri';
          context.textAlign = 'center';
          context.fillStyle = 'blue';
          context.fillText('Hello World!', x, y);   
    }
    
    function clearCanvas(){
        context.clearRect(0, 0, canvas.width, canvas.height);
        drawnOnCanvas = false;
    }
    

    以及对 onClick 的一些其他更改,添加了变量 drawOnCanvas 以跟踪文本何时​​需要出现等。

    【讨论】:

    • 太好了!谢谢您的回答!如果我想让画布变成白色而不是我现在的灰色背景,那我该怎么办?
    • clearCanvas()函数后clearRect()添加:context.fillStyle="white"; context.fill();
    • 不起作用 :( function clearCanvas(){ context.clearRect (0, 0, canvas.width, canvas.height ); context.fillStyle="white"; context.fill(); drawOnCanvas = false; }
    • 但一开始还是不是白色(绿色)……就在你点击和清除的时候
    • 只需在“//按钮”下方和drawText();上方添加clearCanvas();
    猜你喜欢
    • 2012-08-19
    • 2018-07-25
    • 2018-01-17
    • 2016-08-11
    • 1970-01-01
    • 2023-03-07
    • 2019-01-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多