Vue realisiert einen dynamischen Fortschrittsbalkeneffekt

Vue realisiert einen dynamischen Fortschrittsbalkeneffekt

In diesem Artikelbeispiel wird der spezifische Code von Vue zur Erzielung des dynamischen Fortschrittsbalkeneffekts als Referenz bereitgestellt. Der spezifische Inhalt ist wie folgt

Demonstrationseffekt:

Struktur

Fortschritt/index.js

const controller = {
  init: erfordern('./controllers/html'),
  Geschwindigkeit: erforderlich('./controllers/speed')
}
exports.init = controller.init
exporte.Geschwindigkeit = Controller.Geschwindigkeit

Fortschritt/Controller/html/index.js

exporte.set = () => {
  let dom = Dokument.createElement('div')
  dom.setAttribute('id', 'Fortschrittsgeschwindigkeit')
  dom.classList.add('Fortschrittsfeld', 'Fortschritt ausblenden')
  dom.innerHTML = '<div Klasse = "progress progress-speed-hide" id = "progress_box_speed"><div Klasse = "speed" Stil = "width:0%;background: #f2f3f5;transition: 0.2s;"></div></div>'
  document.getElementById('app').insertBefore(dom, document.getElementById('app').firstChild)
  lass Stil = `
              .Fortschrittsbox{
                Breite: 100 %;
                Höhe: 100%;
                Übergang: 0,4 s;
                Position: fest;
                oben: 0;
                links: 0;
                Hintergrund: rgba(0,0,0,0,5);
                z-Index: 4002;
              }
              .Fortschritt {
                Rahmenradius: 19px;
                Hintergrund: #f2f3f5;
                Breite: 80%;
                Höhe: 38px;
                Position: fest;
                oben: berechnet (50 % – 19 Pixel);
                links: berechnet (50 % – 40 %);
                z-Index: 2000;
                Übergang: 0,4 s;
                Deckkraft: 1;
              }
              .fortschritt-ausblenden{
                Rahmenradius: 19px;
                Breite: 0%;
                Höhe: 0%;
                oben: berechnet (50 % – 0 %);
                links: calc(50% - 0%);
                Übergang: 0,2 s;
                Überlauf: versteckt;
              }
              .Fortschritt-Geschwindigkeit-ausblenden{
                Breite: 0%;
                Höhe: 0px;
                Übergang: 0,6 s;
                Deckkraft: 0;
                Überlauf: versteckt;
              }
              .Geschwindigkeit {
                Rahmenradius: 19px;
                Hintergrundbild: -webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
                Hintergrundbild: -o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);
                Hintergrundbild: linearer Farbverlauf (45 Grad, RGBA (255,255,255, 0,15) 25 %, transparent 25 %, transparent 50 %, RGBA (255,255,255, 0,15) 50 %, RGBA (255,255,255, 0,15) 75 %, transparent 75 %, transparent);
                Höhe: 38px;
                -webkit-Hintergrundgröße: 40px 40px;
                Hintergrundgröße: 40px 40px
                Breite: 0%;
                Übergang: 0,3 s;
                Hintergrundfarbe: #409EFF;
                -o-Animation: Fortschrittsbalkenstreifen 2 s linear unendlich;
                Animation: Fortschrittsbalken-Streifen 2 s linear unendlich;
              }
              .Geschwindigkeit-Erfolg{
                Breite: 100 %;
                Hintergrundfarbe: #67c23a;
              }
              @-webkit-keyframes Fortschrittsbalken-Streifen {
                  aus {
                      Hintergrundposition: 40px 0
                  }
              
                  Zu {
                      Hintergrundposition: 0 0
                  }
              }
              
              @-o-keyframes Fortschrittsbalken-Streifen {
                  aus {
                      Hintergrundposition: 40px 0
                  }
              
                  Zu {
                      Hintergrundposition: 0 0
                  }
              }
              
              @keyframes Fortschrittsbalken-Streifen {
                  aus {
                      Hintergrundposition: 40px 0
                  }
              
                  Zu {
                      Hintergrundposition: 0 0
                  }
              }`
  let styleElement = document.getElementById('Fortschritt')
  wenn (!styleElement) {
    styleElement = document.createElement('Stil')
    styleElement.Typ = "Text/CSS"
    styleElement.id = "Fortschritt"
    document.getElementsByTagName('head')[0].appendChild(styleElement)
    styleElement.appendChild(document.createTextNode(Stil))
  }
}

Fortschritt/Controller/Geschwindigkeit/Index.js

exports.run = (Zeit) => {
  document.getElementById('Fortschrittsgeschwindigkeit').classList.remove('Fortschritt ausblenden')
  Zeit = Zeit * 100
  let dom = document.getElementById('progress_box_speed')
  dom.classList.remove('Fortschrittsgeschwindigkeit ausblenden')
  dom.getElementsByClassName('Geschwindigkeit')[0].classList.remove('Geschwindigkeit-Erfolg')
  setzeTimeout(() => {
    dom.getElementsByClassName('Geschwindigkeit')[0].setAttribute('Stil', 'Breite:' + Zeit + '%')
  }, 10)
  wenn (Zeit >= 100) {
    setzeTimeout(() => {
      dom.getElementsByClassName('Geschwindigkeit')[0].classList.add('Geschwindigkeit-Erfolg')
      dom.getElementsByClassName('Geschwindigkeit')[0].setAttribute('Stil', 'Breite:100%')
      dom.classList.add('Fortschrittsgeschwindigkeit ausblenden')
      setzeTimeout(() => {
        document.getElementById('Fortschrittsgeschwindigkeit').classList.add('Fortschritt ausblenden')
        dom.getElementsByClassName('Geschwindigkeit')[0].setAttribute('Stil', 'Breite:0%')
      }, 900)
    }, 1000)
  }
}

Wie benutzt man?

Importieren in main.js (basierend auf dem Pfad Ihrer eigenen neuen Datei, dies ist mein eigener Pfad)

Fortschritt aus „./common/progress“ importieren

Globale Halterung

Vue.prototype.$progress = Fortschritt

Struktur

verwenden:

dies.$progress.init.set()
this.$progress.speed.run('10.555555') // Der Fortschrittsbalken wird 10,555555 % erreichen.

Nachdem der Fortschrittsbalken 100 erreicht hat, wird er automatisch ausgeblendet! Es kann global gemountet und dann überall dort verwendet werden, wo ein Fortschrittsbalken benötigt wird!

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Details zum Schreiben von React in einem Vue-Projekt
  • Vue+Element implementiert Dropdown-Menü mit lokaler Suchfunktion – Beispiel
  • So verwenden Sie wangEditor in Vue und erhalten durch Echo von Daten den Fokus
  • Vergleich der Vorteile von vue3 und vue2
  • Vue implementiert einen dynamischen kreisförmigen prozentualen Fortschrittsbalken
  • Vue realisiert den Prozentbalkeneffekt
  • So implementieren Sie verschiebbare Komponenten in Vue
  • Acht Möglichkeiten zur Implementierung von Kommunikation in Vue

<<:  5 MySQL-GUI-Tools, die Ihnen bei der Datenbankverwaltung empfohlen werden

>>:  Detailliertes Tutorial zur Bereitstellung einer OpenStack-Umgebung basierend auf CentOS (OpenStack-Installation)

Artikel empfehlen

Abfrageprozess und Optimierungsmethode der (JOIN/ORDER BY)-Anweisung in MySQL

Die EXPLAIN-Anweisung wird im MySQL-Abfrageanweis...

Schleifenmethoden und verschiedene Durchlaufmethoden in js

Inhaltsverzeichnis for-Schleife While-Schleife do...

Beinhaltet der %-Wert im neu erstellten MySQL-Benutzer localhost?

Normale Erklärung % bedeutet, dass jeder Client e...

vue + ts realisiert den Effekt des Ziehens von Elementen mit der Maus

In diesem Artikelbeispiel wird der spezifische Co...

Installation und Verwendung der Ubuntu 18.04 Serverversion (Bild und Text)

1 Schritte zur Systeminstallation Betriebssystemv...

So überprüfen Sie, ob MySQL erfolgreich installiert wurde

Nachdem MySQL installiert wurde, können Sie in ei...

Einige „Fallstricke“ beim Upgrade der MySQL-Datenbank

Bei kommerziellen Datenbanken hat die Datenbankak...

HTML-Grundlagen - CSS-Stylesheets, Style-Attribute, Format- und Layoutdetails

1. Position : fest Gesperrte Position (relativ zu...

HTML+CSS zur Realisierung einer einfachen Navigationsleistenfunktion

Ohne weitere Umschweife komme ich gleich zum Code...

Detaillierte Einführung in das MySQL-Schlüsselwort Distinct

Einführung in die Verwendung des MySQL-Schlüsselw...

So fügen Sie in Linux stapelweise Dateipräfixe hinzu

Sie müssen „gt_“ vor den Dateinamen aller TXT-Dat...

Details zur JS-Array-Deduplizierung

Inhaltsverzeichnis 1 Testfälle 2 JS-Array-Dedupli...