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
gzip ist ein Befehl, der in Linux-Systemen häufig...
Hintergrund Temporäre Tablespaces werden verwende...
Installieren Sie zuerst die abhängigen Pakete, um...
Inhaltsverzeichnis 1. Szenario 2. Lösung 3. Fazit...
Das mit JavaScript-Objekten und -Methoden impleme...
1. Verbindung zwischen Docker-Containern Docker i...
Vorwort Weil dies ein verteiltes Dateisystem ist,...
Als ich kürzlich lernte, wie man webpack verwende...
Inhaltsverzeichnis URL-Modul 1.Parse-Methode 2. F...
In diesem Artikel wird der spezifische Code der V...
Die Echtzeitreplikation ist die wichtigste Method...
Kürzlich stellte mir ein Freund eine Frage: Beim ...
Legen Sie Ihr eigenes Webprojekt im Verzeichnis w...
Inhaltsverzeichnis Standardausführungsprozess Opt...
Gehen Sie im Hive-Installationsverzeichnis in das...