我的<canvas>
元素占用100vw
和100vh
。我希望能够点击它的任何地方并在那里画一张照片。现在,当我点击屏幕时,图像不会在我点击的位置附近绘制。我点击左上角越近,就越接近。但是,如果我稍微偏离角落,图像会被推得很低,并且向右移动。画在画布上,鼠标单击关闭
如何计算我似乎需要的偏移量,以便让图像完全按照我点击的位置绘制?
//var count1 = (Math.floor(Math.random() * screen.width)) + 1;
//var count2 = (Math.floor(Math.random() * screen.height)) + 1;
function onCanvasClick() {
var image = document.getElementById("image");
var xLoc = event.clientX;
var yLoc = event.clientY;
var loc = "xLoc is: " + xLoc + " | yLoc is: " + yLoc;
console.log(loc);
var c = document.getElementById("myCanvas");
var ctx = c.getContext("2d");
ctx.drawImage(image, xLoc, yLoc);
}
#myCanvas {
width: 99vw;
height: 99vh;
border: 2px solid rgba(255, 255, 255, 0.5);
background-color: rgba(58, 154, 221, 0.3);
}
#image {
width: 100px;
height: 100px;
display: none;
}
<canvas id="myCanvas" onmousedown="onCanvasClick()">You dont support this!</canvas>
<img id="image" src="//lorempixel.com/100/100/abstract/5/"></img>
这绝对听起来像它可以工作。没想到这是我伸展画布的原因。当我明天早上回到我的笔记本电脑时,我会检查它是否有效,如果确实如此,请给予该复选标记。谢谢! – skyleguy