Mon élément <canvas>
prend 100vw
et 100vh
. Je veux pouvoir cliquer n'importe où et faire dessiner une image là-bas. En ce moment, quand je clique sur l'écran, l'image ne se dessine nulle part près de l'endroit où je clique. Plus je clique dans le coin supérieur gauche, plus c'est proche. Mais si je dévie légèrement du coin, l'image est poussée très loin vers le bas et vers la droite.Dessiner sur du canevas lorsque le clic de souris est désactivé
Comment puis-je calculer le décalage dont j'ai besoin pour que l'image dessine exactement où je clique?
//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>
Cela sonne vraiment comme si cela pouvait fonctionner. Je ne pensais pas que c'était moi qui étirais la toile qui causerait ça. Quand je reviens à mon ordinateur portable demain matin, je vais vérifier si cela fonctionne et vous donner cette coche si c'est le cas. Merci! – skyleguy