So implementieren Sie die Anpassung des Echats-Diagramms an große Bildschirme

So implementieren Sie die Anpassung des Echats-Diagramms an große Bildschirme

beschreiben

Die Kombination von Diagrammen mit Daten kann intuitive visuelle Effekte erzeugen. Die Anzeige auf großen Bildschirmen ist bei der Anzeige von Unternehmensdaten mittlerweile ein gängiges Szenario. Wie die Anpassung an große Bildschirme erreicht werden kann, ist ein Problem, das wir lösen müssen. Im Folgenden finden Sie eine der Lösungen, bei der das Transform-Attribut von CSS und der Design-Prozentsatz verwendet werden. Wenn es Mängel gibt, kritisieren Sie diese bitte.

erreichen

1. Bereiten Sie eine Containerkomponente mit Breite = 100vw und Höhe = 100 % als Hintergrund für die Großbildschirmanzeige vor:

 <div Klasse="Bildschirmadapter">
 </div>
 
 .Bildschirmadapter {
  Breite: 100vw;
  Mindesthöhe: 100 %;
  max. Höhe: 100vh;
  Überlauf: versteckt;
  Hintergrund: #0c1a3c;
}

2. Anhand der von den Designern bereitgestellten Entwurfszeichnungen kann der Prozentsatz jedes Bereichs berechnet werden. Wenn beispielsweise die Gesamtgröße B*H ist und die Breite und Höhe eines Symbols B1*H1 ist, kann der herkömmliche Bildschnitt erreicht werden. Zu diesem Zeitpunkt können wir aus 1-->2 Folgendes erhalten:

<div Klasse="Bildschirmadapter">
    <div Klasse="content-wrap" :style="Stil">
      <Steckplatz></Steckplatz>
    </div>
</div>
Requisiten: {
    w: { // Entwurfszeichnungsgröße Breite Typ: Zahl,
      Standard: 1600
    },
    h: { // Konstruktionszeichnungsgröße Höhe Typ: Zahl,
      Standard: 900
    }
},
Daten () {
    zurückkehren {
      Stil: {
        Breite: diese.w + 'px',
        Höhe: this.h + 'px',
        transform: 'scale(1) translate(-50%, -50%)' // Keine Skalierung standardmäßig, vertikale und horizontale Zentrierung}
    }
}
  
.Inhalts-Wrap {
  Transform-Ursprung: 0 0;
  Position: absolut;
  oben: 50 %;
  links: 50%;
}

3. Basierend auf dem zweiten Schritt müssen Sie das Skalierungsverhältnis entsprechend der spezifischen Größe des großen Bildschirms berechnen und das Skalierungsverhältnis festlegen. Es ist zu beachten, dass Sie beim Binden des Größenänderungsereignisses nicht vergessen, ein Verwackeln zu verhindern, und dass Sie nicht vergessen, das Abhörereignis zu entfernen, wenn die Seite zerstört wird:

montiert () {
    dies.setScale()
    dies.onresize = dies.debounce(() => dies.setScale(), 100)
    window.addEventListener('Größe ändern', this.onresize)
},
vorZerstören () {
    window.removeEventListener('Größe ändern', this.onresize)
},
 Methoden: {
    // Entprellung (fn, t) {
      Konstante Verzögerung = t || 500
      Timer einschalten
      Rückgabefunktion () {
        const args = Argumente
        wenn (Zeitgeber) {
          Zeitüberschreitung löschen(Timer)
        }
        const Kontext = dies
        Timer = setzeTimeout(() => {
          Timer = null
          fn.apply(Kontext, Argumente)
        }, Verzögerung)
      }
    },
    // Skalierungsverhältnis ermitteln getScale () {
      const w = Fenster.innereWidth / this.w
      const h = Fenster.innereHeight / this.h
      gib w < h zurück? w : h
    },
    // Skalierungsverhältnis festlegen setScale () {
      this.style.transform = `Skala(${this.getScale()}) übersetzen(-50%, -50%)`
    }
  }

4. An diesem Punkt wurde die allgemeine Struktur erhalten. Sie müssen nur die wiederhergestellten Konstruktionszeichnungen jedes Teils der Symbolkomponente in den vorherigen Steckplatz einfügen. Die Größe jedes Teils der Symbolkomponente kann auf dem vom Entwurf bereitgestellten Prozentsatz basieren. Alle Codes lauten ungefähr wie folgt:

// ScreenAdapter.vue
<Vorlage>
  <div Klasse="Bildschirmadapter">
    <div Klasse="content-wrap" :style="Stil">
      <Steckplatz></Steckplatz>
    </div>
  </div>
</Vorlage>
<Skript>
Standard exportieren {
  Requisiten: {
    w: {
      Typ: Nummer,
      Standard: 1600
    },
    H: {
      Typ: Nummer,
      Standard: 900
    }
  },
  Daten () {
    zurückkehren {
      Stil: {
        Breite: diese.w + 'px',
        Höhe: this.h + 'px',
        transformieren: 'skalieren(1) übersetzen(-50%, -50%)'
      }
    }
  },
  montiert () {
    dies.setScale()
    dies.onresize = dies.Debounce(() => dies.setScale(), 100)
    window.addEventListener('Größe ändern', this.onresize)
  },
  vorZerstören () {
    window.removeEventListener('Größe ändern', this.onresize)
  },
  Methoden: {
    Entprellen (fn, t) {
      Konstante Verzögerung = t || 500
      Timer einschalten
      Rückgabefunktion () {
        const args = Argumente
        wenn (Zeitgeber) {
          Zeitüberschreitung löschen(Timer)
        }
        const Kontext = dies
        Timer = setzeTimeout(() => {
          Timer = null
          fn.apply(Kontext, Argumente)
        }, Verzögerung)
      }
    },
    getScale() {
      const w = Fenster.innereWidth / this.w
      const h = Fenster.innereHeight / this.h
      gib w < h zurück? w : h
    },
    setzeSkala() {
      this.style.transform = `Skala(${this.getScale()}) übersetzen(-50%, -50%)`
    }
  }
}
</Skript>
<Stil>
.Bildschirmadapter {
  Breite: 100 %;
  Mindesthöhe: 100vh;
  max. Höhe: 100vh;
  Überlauf: versteckt;
  Hintergrund: #0c1a3c;
}
.Inhalts-Wrap {
  Transform-Ursprung: 0 0;
  Position: absolut;
  oben: 50 %;
  links: 50%;
}
</Stil>

Die Projektverzeichnisstruktur ist wie folgt

Das Wirkungsdiagramm sieht wie folgt aus

Man sieht, dass die Schriftdiagramme alle proportional skaliert sind

Zusammenfassen

Dies ist das Ende dieses Artikels über die adaptive Implementierung von Echats-Diagrammen auf großen Bildschirmen. Weitere relevante Inhalte zu adaptiven Echats-Diagrammen auf großen Bildschirmen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

<<:  Implementierung des Docker-Verpackungsimages und Konfigurationsänderung

>>:  Detaillierte Untersuchung des MySQL-Verbundindex

Artikel empfehlen

Beispiel-Tutorial zur JavaScript-Typerkennungsmethode

Vorwort JavaScript ist eine der am häufigsten ver...

So löschen Sie schwebenden Beispielcode in CSS

Überblick Das Rahmendiagramm dieses Artikels ist ...

Wie kompliziert ist die Priorität von CSS-Stilen?

Gestern Abend habe ich mir eine Interviewfrage ang...

Natives JS zum Erstellen einer Drag-Fotowand

Dieser Artikel zeigt Ihnen eine verschiebbare Fot...

So ändern Sie die Zeichensatzkodierung in MySQL 5.5/5.6 unter Linux auf UTF8

1. Melden Sie sich bei MySQL an und verwenden Sie...

Richtige Methode zum Laden von Schriftarten in Vue.js

Inhaltsverzeichnis Schriftarten mit font-face ric...

Schritte zum Verpacken und Bereitstellen des Vue-Projekts auf dem Apache-Server

In der Entwicklungsumgebung wird das Vue-Projekt ...

Detaillierte Analyse der Prinzipien und der Verwendung von MySQL-Ansichten

Vorwort: In MySQL sind Ansichten wahrscheinlich e...

Verwendung von Kubernetes YAML-Dateien

Inhaltsverzeichnis 01 Einführung in YAML-Dateien ...

Detaillierte Beschreibung allgemeiner Ereignisse und Methoden von HTML-Text

Veranstaltungsbeschreibung onactivate: Wird ausgel...

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

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

So löschen Sie Junk-Dateien elegant in Linux

Ich frage mich, ob Sie wie ich ein Programmierer ...