J'utilise le code suivant pour effacer une toile avec la souris et révéler une image.Comment faire pour effacer une toile contenant du texte avec la souris
Je voudrais ajouter un logo et du texte sur la toile. Lorsque l'utilisateur survole la toile (le calque rouge), il efface également le texte.
Je ne suis pas sûr du code que je devrais ajouter pour y parvenir.
J'espère que n'importe qui peut aider!
var canvas = document.getElementById("canvasTop");
// set the canvas element's width/height to cover #wrapper
var wrapper=document.getElementById('wrapper');
var wrapperStyle=window.getComputedStyle(wrapper,null);
canvas.width=parseInt(wrapperStyle.getPropertyValue("width"));
canvas.height=parseInt(wrapperStyle.getPropertyValue("height"));
//
var ctx = canvas.getContext("2d");
ctx.lineWidth = 20;
ctx.lineCap = "round";
ctx.lineJoin = "round";
ctx.fillStyle = "red";
ctx.fillRect(0, 0, canvas.width, canvas.height);
// set "erase" compositing once at start of app for better performance
ctx.globalCompositeOperation = "destination-out";
var canvasOffset = $("#canvasTop").offset();
var offsetX = canvasOffset.left;
var offsetY = canvasOffset.top;
var startX;
var startY;
var isDown = false;
function handleMouseDown(e) {
e.preventDefault();
startX = parseInt(e.clientX - offsetX);
startY = parseInt(e.clientY - offsetY);
isDown = true;
}
function handleMouseUp(e) {
e.preventDefault();
isDown = false;
}
function handleMouseOut(e) {
e.preventDefault();
isDown = false;
}
function handleMouseMove(e) {
if (!isDown) {
return;
}
mouseX = parseInt(e.clientX - offsetX);
mouseY = parseInt(e.clientY - offsetY);
// Put your mousemove stuff here
ctx.beginPath();
ctx.moveTo(startX, startY);
ctx.lineTo(mouseX, mouseY);
ctx.stroke();
startX = mouseX;
startY = mouseY;
}
$("#canvasTop").mousedown(function (e) {
handleMouseDown(e);
});
$("#canvasTop").mousemove(function (e) {
handleMouseMove(e);
});
$("#canvasTop").mouseup(function (e) {
handleMouseUp(e);
});
$("#canvasTop").mouseout(function (e) {
handleMouseOut(e);
});
html, body {height:100%}
body { margin:0; padding:0; overflow:hidden; cursor:default;}
#wrapper {
position:relative;
margin:auto;
width:100%;
height:100%;
}
#wrapper-image { position:absolute; top:0; left:0; width:100%; height:100%; background: url('http://i43.tinypic.com/2iuvpf.jpg') no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;}
#canvasTop {
position:absolute;
top:0px;
left:0px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="wrapper">
<div id="wrapper-image"></div>
</div>
<canvas id="canvasTop" width=512 height=512></canvas>
Salut @ Blindman67. J'aimerais ajouter un logo et du texte sur la toile effaçable. Je ne suis pas sûr où je devrais ajouter votre code dans le mien? –