Vue implementiert nahtloses Scrollen von Listen

Vue implementiert nahtloses Scrollen von Listen

In diesem Artikelbeispiel wird der spezifische Code von Vue zum nahtlosen Scrollen der Liste zu Ihrer Information geteilt. Der spezifische Inhalt ist wie folgt

HTML-Teilcode

<Vorlage>
  <div id="box" Klasse="Wrapper">
    <div Klasse="enthalten" id="con1" ref="con1" :class="{anim:animate==true}">
      <Liste
        v-for="(Element, Index) in CloudList"
        :Schlüssel="Index"
        :listData="Artikel"
        :index="Index"
        :Datum="Datum"
      ></Liste>
    </div>
  </div>
</Vorlage>

List ist eine einzelne Listenkomponente und kann auch durch li ersetzt werden.

CSS-Teilcode

<Stilbereich>
.wrapper {
  Breite: 96vw;
  Höhe: 90vh;
  Position: absolut;
  links: 2vw;
  oben: 1rem;
  Überlauf: versteckt;
}
.contain > div:nth-child(2n) { //Dieser Stil ist für mein Projekt erforderlich und hat nichts mit nahtlosem Scrollen zu tun. Margin-left: 2vw kann ignoriert werden;
}
.anim {
  Übergang: alle 0,5 s;
  Rand oben: -7vh;
}
</Stil>

Meine Listenkomponente ist auf float: left eingestellt, daher hat das div mit id="con1" keine Höhe

js Teil des Codes

<Skript>
Liste aus „./List“ importieren;
Standard exportieren {
  Name: 'Enthalten',
  Daten () {
    zurückkehren {
      cloudList: [], //Array zum Speichern von Listendaten date: '', //Datum der letzten Datenaktualisierung animate: false,
      Zeit: 3000, //Zeitgesteuertes Scrollintervall setTimeout1: null,
      setInterval1: null
    };
  },
  Komponenten:
    Liste
  },
  Methoden: {
    // JSON-Daten abrufen und Datum aktualisieren getCloudListData () {
      const _this = dies;
      _this.$api.getCloudListData().then(res => {
        _this.cloudList = res;
      });
      var neuesDatum = neues Datum();
      _this.date = _this.dateFtt('yyyy-MM-dd hh:mm:ss', neues Datum);
    },
    // Datumsformat dateFtt (fmt, date) {
      var o = {
        „M+“: date.getMonth() + 1, // Monat „d+“: date.getDate(), // Tag „h+“: date.getHours(), // Stunden „m+“: date.getMinutes(), // Minuten „s+“: date.getSeconds(), // Sekunden „q+“: Math.floor((date.getMonth() + 3) / 3), // Quartal S: date.getMilliseconds() // Millisekunden };
      wenn (/(y+)/.test(fmt)) {
        fmt = fmt.ersetzen(
          RegExp.$1,
          (date.getFullYear() + '').substr(4 - RegExp.$1.Länge)
        );
      }
      für (var k in o) {
        wenn (neuer RegExp('(' + k + ')').test(fmt)) {
          fmt = fmt.ersetzen(
            RegExp.$1,
            RegExp.$1.Länge === 1
              ? OK]
              : ('00' + o[k]).substr(('' + o[k]).Länge)
          );
        }
      }
      fmt zurückgeben;
    },
    // Scrollen scroll () {
      const _this = dies;
      _this.animate = wahr;
      Zeitüberschreitung löschen(_this.setTimeout1);
      _this.setTimeout1 = setTimeout(() => {
        var übergeordnetes Element = document.getElementById('con1');
        var erste = document.getElementById('con1').children[0];
        var Sekunde = document.getElementById('con1').children[1];
        übergeordnetes Element.entfernenKind(erstes);
        parent.removeChild(Sekunde);
        übergeordnetes Element.AnhängenKind(erstes);
        parent.appendChild(Sekunde);
        _this.animate = falsch;
      }, 500);
    }
  },
  erstellt () {
    const _this = dies;
    _this.getCloudListData();
    //Der Timer aktualisiert die Daten alle 24 Stunden setInterval(() => {
      _this.getCloudListData();
    }, 24 * 60 * 60 * 1000);
  },
  montiert () {
    const _this = dies;
    var enthalten = document.getElementById('box');
    _this.setInterval1 = setInterval(_this.scroll, _this.time);
    var setInterval2 = null;
    //Maus bewegt sich in den Scrollbereich, um das Scrollen zu stoppen contain.onmouseenter = function () {
      Intervall löschen(_this.setInterval1);
      Variablenanzahl = 0;
      // Wenn sich die Maus länger als zehn Sekunden nicht bewegt, beginne mit dem Scrollen setInterval2 = setInterval(function () {
        zählen++;
        wenn (Anzahl === 10) {
          _this.scroll();
          _this.setInterval1 = setInterval(_this.scroll, _this.time);
        }
      }, 1000);
      //Stoppe das Scrollen, sobald sich die Maus bewegt und setze den Zähler auf 0
      enthalten.onmousemove = Funktion () {
        Anzahl = 0;
        Intervall löschen(_this.setInterval1);
      };
    };
    // Die Maus bewegt sich aus dem Scrollbereich contain.onmouseleave = function () {
      Intervall löschen(Intervall festlegen2);
      Intervall löschen(_this.setInterval1);
      _this.scroll();
      _this.setInterval1 = setInterval(_this.scroll, _this.time);
    };
  }
};
</Skript>

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 erzielt einen nahtlosen Aufwärts-Scrolleffekt von Nachrichten
  • Realisieren Sie einen nahtlosen Scroll-Effekt basierend auf Vue-Seamless-Scroll
  • Detaillierte Erklärung zur Verwendung der nahtlosen Scroll-Komponente vue-seamless-scroll
  • Vue ermöglicht nahtloses Scrollen unendlicher Nachrichten
  • Vue implementiert einen einfachen nahtlosen Scroll-Effekt
  • Vue implementiert den nahtlosen Scrolleffekt der Liste
  • Vue implementiert nahtloses vertikales Scrollen von Listen
  • Vue3 implementiert CSS unendlichen nahtlosen Scrolleffekt
  • Nahtloser Scroll-Effekt basierend auf vue.js
  • Vue- oder CSS-Animation, um ein nahtloses Scrollen der Liste nach oben zu erreichen

<<:  So legen Sie die Umgebungsvariable PATH im Linux-System fest (3 Methoden)

>>:  Beenden Sie eine Reihe von MySQL-Datenbanken mit nur einem Shell-Skript wie diesem (empfohlen)

Artikel empfehlen

Führt das Laden von CSS zu einer Blockierung?

Vielleicht weiß jeder, dass die JS-Ausführung die...

MySQL verwendet ein Limit, um die Beispielmethode für Paging zu implementieren

1. Grundlegende Implementierung des Limits Im All...

Beispiel für die Verwendung von #include-Dateien in HTML

Es gibt zwei Dateien a.htm und b.htm. Im selben Ve...

Horizontales Header-Menü mit CSS3 implementiert

Ergebnis:Implementierungscode html <nav class=...

Vue realisiert Preiskalendereffekt

In diesem Artikelbeispiel wird der spezifische Co...

JavaScript zur Implementierung eines einfachen Einkaufsformulars

In diesem Artikel wird der spezifische JavaScript...

Versprechenskapselung wx.request-Methode

Im vorherigen Artikel wurde die Implementierungsm...

Detaillierte Erläuterung des Docker-Arbeitsmodus und -Prinzips

Wie in der folgenden Abbildung dargestellt: Wenn ...

Dynamischer Sternenhimmel Hintergrund umgesetzt mit CSS3

Ergebnis:Implementierungscode html <link href=...

Beispiel für die Erschöpfung der MySQL-Auto-Increment-ID

Anzeigedefinitions-ID Wenn die in der Tabelle def...