Vorwort1. Warum SVG statt Cavans wählen? Denn Cavans muss seine Breite und Höhe auf hochauflösenden Bildschirmen entsprechend dem DevicePixelRatio anpassen, sonst wird es unscharf. SVG ist ein Vektorbild, das nativ verschiedene Auflösungen unterstützt und keine Unschärfe verursacht. 1. AnwendungsbeispieleReact von „react“ importieren ReactDOM von „react-dom“ importieren importiere './index.css' Importieren Sie WaterMarkContent aus „./components/WaterMarkContent“. App aus „./App“ importieren ReactDOM.render( <Reagieren.StrictMode> <Wasserzeicheninhalt> <App /> </Wasserzeicheninhalt> </React.StrictMode>, document.getElementById('root') ) 2. Implementierungsprozess
Erstellen Sie ein SVG-Wasserzeichenbild const { text = 'Wasserzeichen', Schriftgröße = 16, Füllopacity = '0,2', Füllfarbe = '#000' } = Requisiten const res = ` <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="180px" height="180px" viewBox="0 0 180 180"> <text x="-100" y="-30" füllen='${fillColor}' transformieren = "drehen(-35 220 -220)" füllen-opacity='${fillOpacity}' Schriftgröße='${fontSize}'> ${text}</text> </svg>` Aus dem obigen Code können wir einen SVG-XML-String abrufen und ihn dann in eine URL-Ressource umwandeln. const blob = neuer Blob([res], { Typ: 'image/svg+xml', }) const url = URL.createObjectURL(blob) So erhalten wir eine SVG-Ressourcenadresse und verwenden sie nun als Hintergrundbild des Div <div Stil={{ Position: 'absolut', Breite: '100%', Höhe: '100%', Hintergrundbild: `url(${url})`, oben: 0, links: 0, zIndex: 999, pointerEvents: 'none', //durchklicken}} ></div> An diesem Punkt haben wir problemlos ein mit Wasserzeichen bedecktes Div erhalten. Als Nächstes integrieren wir den Code und kapseln ihn in eine Komponente ein. 3. KomponentencodeReact von „react“ importieren importiere { ReactNode, useMemo } von 'react' Typ svgPropsType = { Text?: Zeichenfolge Schriftgröße?: Zahl fillOpacity?: Zahl Füllfarbe?: Zeichenfolge } const SvgTextBg = (props: svgPropsType) => { const { text = 'Wasserzeichen', Schriftgröße = 16, Füllopacity = '0,2', Füllfarbe = '#000' } = Requisiten const res = ` <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="180px" height="180px" viewBox="0 0 180 180"> <text x="-100" y="-30" füllen='${fillColor}' transformieren = "drehen(-35 220 -220)" füllen-opacity='${fillOpacity}' Schriftgröße='${fontSize}'> ${text}</text> </svg>` const blob = neuer Blob([res], { Typ: 'image/svg+xml', }) const url = URL.createObjectURL(blob) zurückkehren ( <div Stil={{ Position: 'absolut', Breite: '100%', Höhe: '100%', Hintergrundbild: `url(${url})`, oben: 0, links: 0, zIndex: 999, pointerEvents: 'none', //durchklicken}} ></div> ) } Typ Requisitentyp = { Kinder?: ReactNode } & Teilweise<svgPropsType> const WaterMarkContent = (Eigenschaften: Eigenschaftstyp) => { const { Text, Schriftgröße, Füllopacity, Füllfarbe } = Requisiten const memoInfo = useMemo( () => ({ Text, Schriftgröße, Füllopacity, Füllfarbe, }), [Text, Schriftgröße, Füllopacity, Füllfarbe] ) zurückkehren ( <div Stil={{ Position: 'relativ', Breite: '100%', Höhe: ' 100%' }}> {props.children} <SvgTextBg {...memoInfo} /> </div> ) } Standard-Wasserzeicheninhalt exportieren ZusammenfassenDies ist das Ende dieses Artikels über die Verwendung von React zum Erzielen von Seitenwasserzeicheneffekten. Weitere Informationen zur Verwendung von React zum Erzielen von Seitenwasserzeicheneffekten finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! |
<<: Lösung für das Problem des wiederholten Auftauchens des Nachrichten-Popup-Fensters von Element
>>: Wie installiert und verbindet man Navicat in MySQL 8.0.20 und worauf muss man achten?
Die Fallstricke 1. In vielen Tutorials im Interne...
Ich glaube, jeder kennt dieses Gefühl: Ein Video m...
Ich habe schon immer Graustufenbilder bevorzugt, d...
Inhaltsverzeichnis Was ist bei der Registrierung ...
Code kopieren Der Code lautet wie folgt: <div ...
Inhaltsverzeichnis 1. Einleitung 2. Nutzung 3. En...
Der Grund dafür ist, dass alle Dateien in UTF8 kod...
Über die Baumdarstellung von Vue wird im Projekt ...
Für viele inländische Werbetreibende ist die Erste...
Inhaltsverzeichnis Vorwort Pfeilfunktionen Beherr...
Vor kurzem habe ich an der Entwicklung des ersten...
Inhaltsverzeichnis Vorwort: 1. Kurze Einführung i...
In diesem Artikelbeispiel wird der spezifische JS...
Für Windows-Benutzer Verwenden von openGauss in D...
CPU-Last und CPU-Auslastung Beides kann bis zu ei...