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

Implementierung der Fastdfs+Nginx-Clusterkonstruktion

1. Einführung in Fastdfs 1. Was ist Fastdfs? Fast...

Detaillierte Erläuterung des verschachtelten Routings im Vue-Router

Inhaltsverzeichnis Schritt 1. Konfigurieren Sie R...

Implementierung der CSS-Transformation des Seitenumblätter-Animationsdatensatzes

Szenario mit dem Problem des Seitenumblätterns B ...

Grafisches Tutorial zur Installation und Konfiguration von MySQL 8.0.14

Dieser Artikel dokumentiert den Installations- un...

Tutorial zur Installation von MySQL 5.7.18 auf Mac OS 10.12

Ich habe das ganze Internet durchsucht und bin au...

Wertschätzung des dezenten und eleganten Webdesigns in Schwarz, Weiß und Grau

Unter den klassischen Farbkombinationen kann wohl...

Best Practices für die Entwicklung von Amap-Anwendungen mit Vue

Inhaltsverzeichnis Vorwort Asynchrones Laden Pake...

Detaillierte Erklärung zum dynamischen Festlegen des Browsertitels in Vue

Inhaltsverzeichnis Unsinn Text Der erste router/i...

10 Gründe, warum Linux immer beliebter wird

Linux wird von immer mehr Benutzern geliebt. Waru...

So erstellen Sie eine Swap-Partitionsdatei in Linux

Einführung in Swap Swap (d. h. Swap-Partition) in...