React realisiert den gesamten Prozess des Seitenwasserzeicheneffekts

React realisiert den gesamten Prozess des Seitenwasserzeicheneffekts

Vorwort

1. 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. Anwendungsbeispiele

React 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 Wasserzeichenbild
  • Verteilen Sie das Wasserzeichenbild über den gesamten Container
  • Wasserzeichenkomponente: unterstützt Inhaltsslot für Unterkomponenten

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. Komponentencode

React 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

Zusammenfassen

Dies 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?

Artikel empfehlen

Zwei Möglichkeiten, den 30-Sekunden-Werbecode aus dem Youku-Video zu entfernen

Ich glaube, jeder kennt dieses Gefühl: Ein Video m...

Drei Möglichkeiten zum Erstellen eines Graueffekts auf Website-Bildern

Ich habe schon immer Graustufenbilder bevorzugt, d...

Die „3I“-Standards für erfolgreiche Printwerbung

Für viele inländische Werbetreibende ist die Erste...

Kapitel zur Entwicklung von WeChat-Applets: Fallstricke

Vor kurzem habe ich an der Entwicklung des ersten...

Detaillierte Erklärung der MySQL DEFINER-Verwendung

Inhaltsverzeichnis Vorwort: 1. Kurze Einführung i...

Native Js-Implementierung des Kalender-Widgets

In diesem Artikelbeispiel wird der spezifische JS...

Detaillierte Erklärung zur Konfiguration der OpenGauss-Datenbank im Docker

Für Windows-Benutzer Verwenden von openGauss in D...

Detaillierte Erklärung der Linux-CPU-Last und CPU-Auslastung

CPU-Last und CPU-Auslastung Beides kann bis zu ei...