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

Sortierfunktion für HTML-Tabellen per Mausklick

Effektbild: 1. Dateien importieren <script src...

So verwenden Sie tcpdump zum Erfassen von Paketen im Linux-System

Lassen Sie mich zunächst einen Blick auf den Beis...

Detaillierte Erklärung des MySQL-Covering-Index

Konzept Wenn der Index alle Daten enthält, die di...

Ubuntu 18.04 installiert MySQL 5.7.23

Ich habe MySQL zuvor problemlos in Ubuntu 16.04 i...

Einführung in MySQL-Anweisungskommentare

MySQL unterstützt drei Arten von Kommentaren: 1. ...

Detaillierte Erläuterung der Einführung in die JavaScript-Funktion

Inhaltsverzeichnis Funktionseinführung Funktion E...

Analyse der Docker-Methode zum Erstellen lokaler Images

Der sogenannte Container erstellt tatsächlich ein...

Beispiel für eine Methode zur Überprüfung des Status einer Linux-Firewall

So überprüfen Sie den Status der Linux-Firewall 1...

Flexibles Boxmodell von CSS und CSS3 zur Anpassung der Elementbreite (-höhe)

1. CSS realisiert eine feste Breite links und ein...