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
Das Geschäftsszenario des Unternehmens erfordert ...
Notieren Sie einige der Orte, an denen Sie Zeit v...
Inhaltsverzeichnis 1. Anfrage erhalten: 2. Anfrag...
Code kopieren Der Code lautet wie folgt: <KÖRP...
Code kopieren Der Code lautet wie folgt: @Zeichen...
Vorwort In diesem Artikel wird der Vorgang zum He...
Win10 + Ubuntu 20.04 LTS Dual-System-Installation...
Vorwort Wenn Sie RabbitMQ verwenden und für einen...
Inhaltsverzeichnis 1. Kernbefehle 2. Allgemeine B...
app.js: Startdatei oder Einstiegsdatei package.js...
Inhaltsverzeichnis Ein kurzer Überblick über die ...
Plätzchen Dies ist eine Standardmethode zum Speic...
Original-URL: http://segmentfault.com/blog/ciaocc/...
Standardmäßig akzeptiert MySQL das Einfügen von 0...
Verwenden Sie HTML, um komplexe Tabellen zu erste...