Das meiste, was Sie gesehen haben, sind normale Screenshots, die mit den meisten Anwendungsszenarien zurechtkommen. Wenn Sie jedoch bei der Bildverarbeitung die Regeln an die Benutzer weitergeben möchten, können normale Screenshots die Benutzer nicht mehr zufriedenstellen. Können wir dann eine beliebige regelmäßige Bildaufnahme im Frontend implementieren? Lassen Sie es mich gemeinsam besprechen! Bilderfassung durch SVGVerwenden Sie das ClipPath-Bild-Tag in SVG, um Bilder durch ID-Mapping und die Koordinaten des dynamischen Positionspolygons zu erfassen <div> <div Klasse="Inhalt" @mousemove="mousemove" @mouseup="(e) => {mouseup(e);}"> <!-- Canvas-Anzeige --> <svg ref="schwarzSvg" Klasse="schwarzSvg" xmlns="http://www.w3.org/2000/svg" Breite="300" Höhe="300" > <Definitionen> <clipPath id="clippfad"> <polygon :points="Punkte"></polygon> </clipPfad> </defs> <Bild xmlns:link="http://www.w3.org/1999/xlink" href="https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3228549874,2173006364&fm=26&gp=0.jpg" rel="externes Nofollow" Breite="300" Höhe="300" preserveAspectRatio="keine" Stil="Clip-Pfad: URL(#ClipPfad)" ></Bild> </svg> <!-- Punkt ziehen --> <ul Klasse="Abfangen"> <li v-for="Element in 4" :ref="`li${item}`" :Schlüssel="Artikel" @mousedown="(e) => {mousedown(e, Element);}" ></li> </ul> <!-- Basiskartenanzeige --> <Bild Klasse="schwarzesBild" Quelle="https://ss2.bdstatic.com/70cFvnSh_Q1YnxGkpoWK1HF6hhy/it/u=3228549874,2173006364&fm=26&gp=0.jpg" alt="" /> <!-- Maskenebene--> <div Klasse="schwarzDiv"></div> </div> </div> CSS-Teil<style lang="sass"> .schwarzDiv Breite: 100% Höhe: 100% Position: absolut oben: 0 Z-Index: 2 Hintergrund: rgba(0,0,0, 1) .Inhalt Breite: 300px Höhe: 300px Textausrichtung: links Position: relativ .schwarzSvg Position: absolut oben: 0 Z-Index: 3 .schwarzesBild Position: absolut oben: 0 links: 0 Breite: 300px Höhe: 300px .Abfangen Listenstil: keiner Position: absolut oben: 0 Marge: 0 Polsterung: 0 Z-Index: 3 >li Position: absolut Breite: 10px Höhe: 10px Hintergrund: blau Randradius: 50 % Cursor: Zeiger &:schweben transformieren: Skalierung(1.2) Übergangsdauer: .2 >li:ntes-Kind(1) oben: 10px links: 10px >li:ntes-Kind(2) oben: 10px links: 100px >li:ntes-Kind(3) oben: 100px links: 100px >li:ntes-Kind(4) oben: 100px links: 10px </Stil> <Skript> Standard exportieren { Name: 'Canvas', Daten() { zurückkehren { Punkte: '0 0,300 0,300 300,0 300', // Initialisierungsstatus der Bildanzeige: false, Index: 0, disX: 0, disY: 0, Koordinaten: { // Initialisiere Ziehpunkt 1: [0, 0], 2: [300, 0], 3: [300, 300], 4: [0, 300], }, }; }, montiert() { dies.$nextTick(() => { für (let-Schlüssel in this.coordinates) { const left = diese.Koordinaten[Schlüssel][0]; const top = diese.Koordinaten[Schlüssel][1]; dies.$refs[`li${key}`].style.left = `${left}px`; dies.$refs[`li${key}`].style.top = `${top}px`; wenn (Schlüssel == 2 || Schlüssel == 3) { dies.$refs[`li${key}`].style.left = `${left - 10}px`; } wenn (Schlüssel == 3 || Schlüssel == 4) { dies.$refs[`li${key}`].style.top = `${top - 10}px`; } } document.onmouseup = () => { dieser.status = falsch; }; }); }, Methoden: { //Maus runter mousedown(e, index) { dieser.status = wahr; dies.index = index; this.disX = e.clientX - this.$refs[`li${index}`].offsetLeft; this.disY = e.clientY - this.$refs[`li${index}`].offsetTop; }, // Maus hoch mouseup(e) { dieser.status = falsch; }, //Mausbewegung mousemove(e) { wenn (dieser.status) { lass links = e.clientX - this.disX; let top = e.clientY - this.disY; dies.$refs[`li${this.index}`].style.left = `${left}px`; dies.$refs[`li${this.index}`].style.top = `${top}px`; this.coordinates[this.index] = [links, oben]; const PunkteArr = []; für (let item in this.coordinates) { PunkteArr.push( Array.from(dieses.coordinates[item], (e) => { gebe e + 5 zurück; }) ); } dies.Punkte = PunkteArr.join(' '); } }, }, }; Effektbildanzeige QuellcodeadresseGitHub-Adresse --> github.com/lgxin/captu… Oben finden Sie den detaillierten Inhalt der Implementierung von unregelmäßigen Screenshots durch Vue. Weitere Informationen zu unregelmäßigen Screenshots durch Vue finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung der Rolle statischer Variablen in MySQL
Lassen Sie mich Ihnen nun eine Frage stellen. Was...
Verwenden Sie reines CSS, um die Hintergrundfarbe...
Erstens: Installation von MySQL Laden Sie die MyS...
Wenn Sie Alibaba Cloud Server verwenden, müssen S...
In diesem Artikel wird der spezifische Code von j...
Phänomen Es gibt mehrere verschachtelte Flex-Stru...
Ergebnis: Implementierungscode: html <div Klas...
Vorwort Wer schon einmal mit MySQL gespielt hat, ...
Installieren Sie Docker unter CentOS 8 Offizielle...
Inhaltsverzeichnis 1. Digitaler Betrieb (1) Gener...
Inhaltsverzeichnis Das Problem hierbei ist: Lösun...
1. Hintergrund Obwohl ich viele Blogs und Artikel...
Als ich in der Wertpapierfirma arbeitete, war ich ...
1. Neue Funktionen MySQL 5.7 ist ein spannender M...
1. Einspaltiger Index Die Auswahl der Spalten, fü...