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

Detaillierte Erläuterung der MySQL-Filterreplikationsideen

Inhaltsverzeichnis MySQL gefilterte Replikation I...

So zeichnen Sie eine Schaltfläche in XAML als Kreis neu

Beim Verwenden des XAML-Layouts müssen manchmal ei...

5 Möglichkeiten zum Löschen oder Entfernen großer Dateiinhalte in Linux

Beim Arbeiten mit Dateien im Linux-Terminal möcht...

Detaillierte Erklärung des JavaScript-Stacks und der Kopie

Inhaltsverzeichnis 1. Definition des Stapels 2. J...

Hinweise zur Verwendung von Textarea

Warum speziell Textbereich erwähnen? Denn der Text...

JavaScript verwendet setTimeout, um einen Countdown-Effekt zu erzielen

Um die Fähigkeit zum Schreiben von nativem JavaSc...

Vue3 (III) Website Homepage Layout Entwicklung

Inhaltsverzeichnis 1. Einleitung 2. Tatsächliche ...

So fragen Sie doppelte Daten in einer MySQL-Tabelle ab

INSERT INTO hk_test(Benutzername, Passwort) VALUE...

Beispielanweisungen für Indizes und Einschränkungen in MySQL

Fremdschlüssel Abfrage, bei welchen Tabellen der ...