Vue implementiert das gleichzeitige Einstellen mehrerer Countdowns

Vue implementiert das gleichzeitige Einstellen mehrerer Countdowns

In diesem Artikelbeispiel wird der spezifische Code von Vue zum gleichzeitigen Einstellen mehrerer Countdowns zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt

Der HTML-Code lautet wie folgt:

<div Klasse="Startseite">
    <tbody>
      <tr v-for="(Artikel, Index) in Schnäppchenwaren" :key="index">
        <td v-text="item.down + Djs_timeList(item.countDown)"></td>
      </tr>
    </tbody>
</div>

js lautet wie folgt:

Standard exportieren {
  Daten() {
    zurückkehren {
      SchnäppchenWare: [],
      gesamt: 0,
      Seite: 1,
      Serverzeit: 0,
      Timer: ""
      // Host-URL: diese.$Host-URL
    };
  },
  //Wird für die Dateninitialisierung verwendet erstellt: function() {
    // Daten abrufen this.goods();
    // Serverzeit abrufen this.findServiceTime();
  },
  Methoden: {
    Waren: Funktion() {
      var _this = dies;
      _diese.$axios({
        URL: "Waren/SeiteWaren",
        Daten: {
          aktuell: -1,
          Aktivitätsstatus: "",
          Grenze: -1,
          Status: "SALE"
        },
        Erfolg: Antwort => {
          _this.bargainGoods = Antwort.Artikel;
          _this.Djs_time();//Timer aufrufen// Nachfolgend die Start- und Endzeit der von mir zurückgegebenen Hintergrunddaten, welche für die Seitenanzeige verwendet werden if (_this.bargainGoods.length != 0) {
            für (var key in _this.bargainGoods) {
              var Stunde = 0;
              var Startzeit = 0;
              wenn (_this.bargainGoods[key] != null) {
                _this.bargainGoods[key].countDown = "";
                _this.bargainGoods[key].down = "";

                // Endzeit Stunde = _this.bargainGoods[key].overTime;
                Startzeit = _this.bargainGoods[Schlüssel].activityStartTime;
                Stunde = Stunde.ersetzen(/-/g, "/");
                Stunde = neues Datum(Stunde).getTime();
                Startzeit = Startzeit.replace(/-/g, "/");
                Startzeit = neues Datum (Startzeit).getTime();
                // Wenn die Endzeit nach der aktuellen Zeit liegt, if (hour > _this.serverTime && starttime < _this.serverTime) {
                  var Stundenzeit = Stunde - _this.serverTime;
                  if (Stundezeit > 0) {
                    _this.bargainGoods[key].down = "Countdown beenden:";
                    _this.bargainGoods[Schlüssel].countDown =
                      _this.bargainGoods[Schlüssel].overTime;
                  }
                } sonst wenn (Startzeit > _diese.Serverzeit) {
                  var starhourtime = starttime - _this.serverTime;
                  wenn (Sternstundenzeit > 0) {
                    _this.bargainGoods[key].down = "Countdown starten:";
                    _this.bargainGoods[Schlüssel].countDown =
                      _this.bargainGoods[Schlüssel].activityStartTime;
                  }
                } anders {
                  _this.bargainGoods[key].down = "Beendet";
                  _this.bargainGoods[key].countDown = "";
                }
                // console.log(_this.bargainGoods);
              }
            }
            _this.bargainGoods = _this.bargainGoods;
          }
        }
      });
    },
    // Serverzeit abfragen findServiceTime() {
      var _this = dies;
      _diese.$axios({
        URL: "Serverzeit/getDateTime",
        Erfolg: Funktion (Res) {
          _this.serverTime = res.item;
        }
      });
    },

    Djs_time: Funktion() {
      dieser.timer = setzeInterval(() => {
        diese.Serverzeit = diese.Serverzeit + 1000;
      }, 1000);
    },

    Djs_timeList: Funktion(itemEnd) {
      // Das Datum von itemEnd besteht hier aus Jahr, Monat, Tag, Stunde, Minute und Sekunde var endItem = new Date(itemEnd).getTime(); //Die in der Liste überschrittene Frist abrufen und in einen Zeitstempel umwandeln var nowItem = this.serverTime; //Die aktuelle Uhrzeit abrufen var rightTime = endItem - nowItem; //Frist minus aktuelle Uhrzeit if (rightTime > 0) {
        // Beurteile die verbleibende Countdown-Zeit. Wenn sie größer als 0 ist, führe den Countdown aus, andernfalls beende ihn. var dd = Math.floor(rightTime / 1000 / 60 / 60 / 24);
        var hh = Math.floor((rechteZeit / 1000 / 60 / 60) % 24);
        var mm = Math.floor((rechteZeit / 1000 / 60) % 60);
        var ss = Math.floor((rechteZeit / 1000) % 60);
        var showTime = dd + "Tag" + hh + "Stunde" + mm + "Minute" + ss + "Sekunde";
      } anders {
        var showTime = "";
      }
      gib ShowTime zurück;
    },

  },
    //Lösche den Timer, nachdem die Seite zerstört wurde() {
    : ClearInterval(dieser.Timer);
  }
};

Die Wirkung ist wie folgt:

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:
  • Vue schreibt eine einfache Countdown-Button-Funktion
  • Einfache Implementierung der 60-Sekunden-Countdown-Funktion des Vue-Verifizierungscodes
  • Vue2.0-Countdown-Plugin (Zeitstempel-Aktualisierungssprung ist nicht betroffen)
  • SMS-Bestätigungscode-Countdown-Demo basierend auf Vue
  • Vue implementiert die Countdown-Funktion der Bestätigungscode-Schaltfläche
  • Mehrere Codebeispiele zur Countdown-Implementierung in Vue
  • Vue implementiert die Countdown-Funktion des Mall-Flash-Sales
  • Vue implementiert einen Countdown, um den Bestätigungscode-Effekt zu erzielen
  • Detaillierte Erklärung zum Entwerfen einer Countdown-Komponente in Vue
  • Vue+Canvas realisiert ein Countdown-Plugin mit coolen Uhreffekten (ein Vue2-Plugin, das auf npm veröffentlicht wurde und sofort verwendet werden kann)

<<:  So verwenden Sie Docker zum Bereitstellen eines Django-Technologie-Stack-Projekts

>>:  Eine schnelle Lösung für den ersten Anmeldefehler in mysql5.7.20

Artikel empfehlen

SQL-Fuzzy-Abfragebericht: ORA-00909: Lösung: Ungültige Anzahl von Parametern

Bei Verwendung einer Oracle-Datenbank für Fuzzy-A...

Lösung für das MySQL-Fehlerproblem 1045 (28000)

Ich bin auf den MySQL-FEHLER 1045 gestoßen und ha...

Springboot+VUE zur Realisierung von Anmeldung und Registrierung

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung des strikten Modus in JavaScript

Inhaltsverzeichnis Einführung Verwenden des strik...

Vue.js implementiert ein einfaches Faltpanel

In diesem Artikelbeispiel wird der spezifische Co...

Zusammenfassung häufiger Probleme mit MySQL-Indizes

F1: Welche Indizes hat die Datenbank? Was sind di...

JavaScript-Selektorfunktionen querySelector und querySelectorAll

Inhaltsverzeichnis 1. querySelector fragt ein ein...

impress.js Präsentationsschicht-Framework (Demonstrationstool) - erste Erfahrungen

Ich habe ein halbes Jahr lang nicht gebloggt, wofü...

Linux /etc/network/interfaces Konfigurationsschnittstellenmethode

Die Datei /etc/network/interfaces wird in Linux z...

Eingabedatei zur benutzerdefinierten Schaltflächenverschönerung (Demo)

Ich habe schon einmal einen solchen Artikel gesch...

Was sind die Unterschiede zwischen xHTML- und HTML-Tags?

Alle Tags müssen klein geschrieben sein In XHTML m...

Diagramm des Datenübertragungsprozesses beim dritten TCP-Handshake

Die Prozesspakete mit dem SYN-Flag im RFC793-Doku...