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
Unten beginnt der Haupttext. 123WORDPRESS.COM Her...
Vorwort Dieser Artikel listet mehrere gängige, pr...
Die Aktion des Formulars unterscheidet sich vom UR...
Inhaltsverzeichnis Erster Schritt: Der zweite Sch...
veranschaulichen Dieser Artikel wurde am 20.05.20...
Einleitung Stellt einige einfache und praktische ...
Ein Zustandsübergangsdiagramm eines Docker-Contai...
In diesem Artikelbeispiel wird der spezifische Co...
Ergebnisse erzielen Implementierungscode <h1&g...
Vorwort Die Verwendung von CSS zum Generieren gep...
Tutorial zur Verwendung von NPX Heute Abend, als ...
Centos7-Switch-Boot-Kernel Hinweis: Bei Bedarf wi...
In diesem Artikel wird der spezifische Code von V...
In diesem Artikel erfahren Sie, wie Sie das benut...
1. MySQL-Installationsverzeichnis Kopieren Sie de...