【发布时间】:2017-07-31 05:37:05
【问题描述】:
我编写了一个脚本,允许用户在 html 5 画布元素上绘制简单的线条。最终目标是让这个绘图平铺并在浏览器的其余部分重复。我已经在页面上获得了一个克隆的画布,但正在努力研究如何在多个画布上同时绘制相同的线条。
我会在下面粘贴我的代码
var size = 40;
var md = false;
var canvas = document.getElementById('canvas');
canvas.addEventListener('mousedown', down);
canvas.addEventListener('mouseup', toggledraw);
canvas.width = 600;
canvas.height = 600;
canvas.addEventListener('mousemove', move);
function move(evt){
var mousePos = getMousePos(canvas, evt);
var posx = mousePos.x;
var posy = mousePos.y;
draw(canvas, posx, posy);
window.posx;
return mousePos;
};
function down(){
md = true;
}
function toggledraw(){
md = false;
}
function getMousePos(canvas, evt){
var rect = canvas.getBoundingClientRect();
return{
x:evt.clientX - rect.left,
y:evt.clientY - rect.top
};
};
function draw(canvas, posx, posy){
var context = canvas.getContext('2d');
if(md){
context.fillRect(posx, posy, size, size)
}
};
cloneCanvas(canvas, window.posx, window.posy, size);
function cloneCanvas(canvas, posx, posy, size,) {
console.log(posx);
var newCanvas = document.createElement('canvas');
var context = newCanvas.getContext('2d');
newCanvas.className = "newNew";
newCanvas.width = canvas.width;
newCanvas.height = canvas.height;
document.body.appendChild(newCanvas);
//context.fillRect(posx, posy, size, size)
context.drawImage(canvas, posx, posy);
return canvas;
}
【问题讨论】:
标签: javascript jquery html canvas