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
Die Sache ist: Jeder kennt „Speicherlecks“. Es gi...
1. Voraussetzungen: Die Datenbanksicherung ist be...
Während der Entwicklungstätigkeit bin ich auf ein...
Beim Konfigurieren unterschiedlicher Servlet-Pfad...
Code kopieren Der Code lautet wie folgt: <fram...
MySQL 5.7-Version: Methode 1: Verwenden Sie den B...
In den vorherigen Kapiteln haben wir gelernt, wie...
Apache Arrow ist ein beliebtes Format, das von ve...
Dieser Artikel beschreibt die gemeinsame Abfrageo...
Ein zusammengesetzter Index (auch gemeinsamer Ind...
Laden von Kernelsymbolen mit gdb arm-eabi-gdb out...
Inhaltsverzeichnis Was ist Abflachung? Rekursion ...
Beim Produktdesign legen Designer Wert darauf, das...
Inhaltsverzeichnis Vorwort Einführung in QueryCac...
Nehmen wir ein Beispiel: Der Code ist sehr einfach...