Wirkungsdemonstration: Hauptimplementierung des JS-Codes <div Klasse="Box" id="bb"> <canvas id="cas" width="1366" height="651"></canvas> </div> <script Typ="text/javascript" Zeichensatz="utf-8"> var canvas = document.getElementById("cas"), ctx = canvas.getContext("2d"); var x1, y1, a = 30, Zeitüberschreitung, totimes = 100, jiange = 30; canvas.width = document.getElementById("bb").clientWidth; Leinwand.Höhe = document.getElementById("bb").clientHeight; var img = neues Bild(); img.src = "sha.jpg"; img.onload = Funktion() { ctx.drawImage(img, 0, 0, Leinwandbreite, Leinwandhöhe) //ctx.fillRect(0,0,Leinwand.Breite,Leinwand) tippen Sie aufClip() } //Erzielen Sie den Löscheffekt durch Ändern der globalCompositeOperation-Funktion tapClip() { var hastouch = "ontouchstart" im Fenster? true : false, tapstart = hastouch ? "touchstart" : "Maus gedrückt", tapmove = hastouch ? "touchmove" : "mousemove", tapend = hastouch? "touchend" : "mouseup"; ctx.lineCap = "rund"; ctx.lineJoin = "runde"; ctx.Zeilenbreite = a * 2; ctx.globalCompositeOperation = "Ziel-Ausgang"; canvas.addEventListener(tapstart, Funktion(e) { Zeitüberschreitung löschen (Zeitüberschreitung) e.preventDefault(); x1 = hastouch ? e.targetTouches[0].pageX : e.clientX - canvas.offsetLeft; y1 = hastouch ? e.targetTouches[0].pageY : e.clientY - canvas.offsetTop; ctx.speichern(); ctx.beginPath() ctx.arc(x1, y1, 1, 0, 2 * Math.PI); ctx.fill(); ctx.wiederherstellen(); canvas.addEventListener(tapmove, tapmoveHandler); canvas.addEventListener(tapend, Funktion() { canvas.removeEventListener(tapmove, tapmoveHandler); Zeitüberschreitung = Zeitüberschreitung festlegen (Funktion () { var imgData = ctx.getImageData(0, 0, canvas.width, canvas.height); var dd = 0; für (var x = 0; x < imgData.width; x += jiange) { für (var y = 0; y < imgData.height; y += jiange) { var i = (y * imgData.width + x) * 4; wenn (imgData.data[i + 3] > 0) { dd++ } } } wenn (dd / (imgData.width * imgData.height / (jiange * jiange)) < 0,4) { canvas.className = "noOp"; } }, zumal) }); canvas.addEventListener(tapmove, tapmoveHandler); canvas.addEventListener(tapend, Funktion() { canvas.removeEventListener(tapmove, tapmoveHandler); Zeitüberschreitung = Zeitüberschreitung festlegen (Funktion () { var imgData = ctx.getImageData(0, 0, canvas.width, canvas.height); var dd = 0; für (var x = 0; x < imgData.width; x += jiange) { für (var y = 0; y < imgData.height; y += jiange) { var i = (y * imgData.width + x) * 4; wenn (imgData.data[i + 3] > 0) { dd++ } } } }, zumal) }); } </Skript> <Skripttyp="text/javascript"> window.setTimeout('CountDown()', 100); // Ende </Skript> Oben finden Sie ausführliche Informationen dazu, wie Sie mit JS den Effekt erzielen, dass eine Leinwand eine Rubbelkarte imitiert, die ein PS-Radiergummi ist. Weitere Informationen zu JS finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
>>: Detailliertes Tutorial zur Installation und Verwendung von Kong API Gateway mit Docker
Vorwort Um beim Testen die Fähigkeit des Projekts...
Inhaltsverzeichnis 1. beforeCreate und erstellte ...
Inhaltsverzeichnis Vorwort So lösen Sie Sudoku Fü...
Vor Kurzem habe ich mit der Aktualisierung meines ...
Lassen Sie mich Ihnen nun eine Frage stellen. Was...
Ich habe kürzlich Django bereitgestellt und wollt...
Erstellen Sie einen MySQL-Benutzer und autorisier...
1. Laden Sie das Zip-Installationspaket herunter ...
Ich habe immer Loadrunner für Leistungstests verw...
Wenn Sie MySQL zum ersten Mal auf Ihrem Computer ...
In den vorherigen drei Artikeln wurden gängige Si...
Leider trat der Fehler MYSQL_DATA_TRUNCATED währe...
Inhaltsverzeichnis 1. Vorstellen gemäß der Bestel...
1. MySQL-Image herunterladen Befehl: docker pull ...
Vorwort In einem früheren Projekt wurde die Sorti...