1. Hintergrund zur Umsetzung Letzte Woche mussten wir bei einer Aktivität, bei der Benutzer Aufgaben erledigten und rote Umschläge erhielten, ein Popup-Fenster zum Empfangen roter Umschläge implementieren, nachdem der Benutzer auf eine Schaltfläche geklickt hatte. Wenn das Popup-Fenster geschlossen wurde und der Benutzer zur ursprünglichen Seite zurückkehrte, musste die Saldenzahl auf der Seite den Effekt des Scrollens jeder Ziffer anzeigen. 2. Umsetzungsideen Tatsächlich geht es darum, die eingehende n-stellige Zahl durch Rollen in jede zu würfelnde Zahl aufzuteilen und dann dynamisch einen Container zu erstellen, der die entsprechenden zu jeder Ziffer gewürfelten Zahlen enthält, und diesen dann in den eingehenden Zielcontainer einzufügen. Das Scrollen zu jeder entsprechenden Zahl kann erreicht werden, indem dynamisch 3. Implementierungsprozess Da wir es kapseln müssen, schreiben wir es in Form /** * Klasse, die den digitalen Scroll-Effekt implementiert*/ Klasse DigitScroll { Konstruktor(Optionen) { //DOM des Containers abrufen. Wenn nicht, wird ein Fehler ausgegeben this.container = document.querySelector(options.container); wenn (!dieser.container) { throw Error("kein Container"); } this.container.style.overflow = "versteckt"; dieser.Container.Stil.Anzeige = "flex"; //Die Höhe des sichtbaren Containers ist gleichzeitig das Scrollintervall. Die Höhe des Containers muss festgelegt werden, andernfalls beträgt der Standardwert 30px this.rollHeight = parseInt(getComputedStyle(this.container).height) || 30; diese.Container.Stil.Höhe = diese.Rollhöhe + "px"; } rollen(num) { // Die zum Scrollen übergebene Zahl aufteilen und den Container jeder Ziffer initialisieren this.initDigitEle(num); const numEles = this.container.querySelectorAll(".single-num"); // Durchlaufe und erzeuge die Scroll-Warteschlange für jede Ziffer. Wenn der Scroll beispielsweise 7 erreicht, erzeuge 7 Divs mit den Inhalten 0, 1, 2, 3, 4, 5, 6 und 7 für die Scroll-Animation [...numEles].forEach((numEle, index) => { Konstante aktuelle Nummer = 0; sei targetNum = Zahl(diese.numberArr[index]); if (aktuelleNummer >= ZielNummer) { ZielNummer = ZielNummer + 10; } sei cirNum = curNum; // Dokumentfragmente zusammenfügen und gleichzeitig in den Knoten einfügen const fragment = document.createDocumentFragment(); // Generiere Divs entsprechend der Zielzahl von 0 bis während (Zielnummer >= Kreisnummer) { const ele = document.createElement("div"); ele.innerHTML = cirNum % 10; cirNum++; fragment.appendChild(ele); } numEle.innerHTML = ""; AnzahlEle.AnhängenUntergeordnetesElement(Fragment); //Position zurücksetzen numEle.style.cssText += "-webkit-transition-duration:0s;-webkit-transform:translateY(0)"; setzeTimeout(() => { numEle.style.cssText += `-webkit-transition-duration:1s;-webkit-transform:translateY(${ -(Zielnummer - aktuelleNummer) * diese.Rollhöhe }px);`; }, 50); }); } // Initialisiere den Container initDigitEle(num) { //Zahlenaufteilung in Ziffern const numArr = num.toString().split(""); // Dokumentfragmente zusammenfügen und gleichzeitig in den Knoten einfügen const fragment = document.createDocumentFragment(); numArr.fürJeden((Artikel) => { const el = document.createElement("div"); // Zahlen werden gescrollt, Nicht-Zahlen wie . werden nicht gescrollt if (/[0-9]/.test(item)) { el.className = "Einzelnum"; el.style.height = this.rollHeight + "px"; el.style.lineHeight = this.rollHeight + "px"; } anders { el.innerHTML = Element; el.className = "keine Bewegung"; el.style.verticalAlign = "unten"; } // el.style.float='links'; fragment.appendChild(el); }, []); dieser.container.innerHTML = ""; dies.container.appendChild(fragment); //Speichern Sie die scrollenden Zahlen this.numberArr = numArr.filter((item) => /[0-9]/.test(item)); } } Dies ist das Ende dieses Artikels über die Verwendung von JavaScript zum Erzielen von scrollenden Kontoständen. Weitere Informationen zur Verwendung von JavaScript zum Erzielen von scrollenden Kontoständen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Mit HTML+CSS3 implementierte Anmeldeschnittstelle
1. at ist so konfiguriert, dass nach 5 Stunden „D...
1. catalina.bat muss auf UTF-8 eingestellt sein. ...
Unter Linux gibt es zwei Arten von Dateiverbindun...
Überblick Das Builder-Muster ist ein relativ einf...
/****************** * Erweiterter Zeichengerätetr...
CSS-Position Das Positionsattribut gibt den Posit...
Ⅰ. Problembeschreibung: Verwenden Sie HTML+CSS, u...
Die allgemeine Schreibweise ist wie folgt: XML/HT...
Was ist HTML? HTML ist eine Sprache zur Beschreib...
Beim Entwickeln und Debuggen einer Webanwendung s...
translate(-50%,-50%)-Attribute: Verschieben Sie e...
Während der Entwicklung wird eine gute Benutzerob...
Docker-Fehler 1. Überprüfen Sie die Ursache Docke...
1. Befehlseinführung Mit dem Befehl seq (Sequence...
In diesem Artikelbeispiel wird der spezifische Co...