Der digitale Scrolleffekt auf großen Bildschirmen stammt aus einem UI-Diagramm auf großen Bildschirmen, das in jüngster Zeit erstellt wurde. Im UI-Diagramm gibt es ein Modul, das den Effekt haben muss, dass Zahlen nach oben klappen. Der endgültige Effekt ist wie folgt: Ideen Bevor wir diesen Effekt erzielen, sortieren wir unsere Ideen und entwerfen mithilfe einer Mindmap unsere Implementierungsschritte wie folgt: Erstimplementierung Sie können Elemente prüfen und digitale Hintergrundbilder herunterladen Lassen Sie uns den obigen Entwurfsprozess zunächst einfach implementieren <div Klasse="Box"> <p Klasse="Box-Artikel"> <span>1</span> </p> </div> Wichtige .box-Artikel { Position: relativ; Anzeige: Inline-Block; Breite: 54px; Höhe: 82px; /* Hintergrundbild */ Hintergrund: URL (./number-bg.png) keine Wiederholung Mitte Mitte; Hintergrundgröße: 100 % 100 %; Schriftgröße: 62px; Zeilenhöhe: 82px; Textausrichtung: zentriert; } Nach der Implementierung des obigen Codes wird sein Effekt wie folgt sein: Überlegung: Nachdem sich im Hintergrundfeld Zahlen befinden, denken wir jetzt darüber nach. Der Text im Hintergrundfeld muss aus Zahlen zwischen
Die Echtzeitwirkung ist wie folgt: Basierend auf der obigen Inspiration können wir den folgenden Effekt erzielen: <p Klasse="Box-Artikel"> <span>0123456789</span> </p> .box-Artikel { Anzeige: Inline-Block; Breite: 54px; Höhe: 82px; Hintergrund: URL (./number-bg.png) keine Wiederholung Mitte Mitte; Hintergrundgröße: 100 % 100 %; Schriftgröße: 62px; Zeilenhöhe: 82px; Textausrichtung: zentriert; /* Neu hinzugefügter Code*/ Position: relativ; Schreibmodus: vertikal-lr; Textausrichtung: aufrecht; /* Überlauf: versteckt; */ } /* Neu hinzugefügter Code*/ .box-item span { Position: absolut; oben: 10px; links: 50%; transformieren: übersetzenX(-50%); Buchstabenabstand: 10px; } Scrollen berechnen Wenn die Zahl bis Die Antwort lautet: nach unten scrollen Was ist mit den anderen Zahlen? Dank unserer speziellen Implementierung gibt es eine allgemeine Formel für die Rolldistanz jeder Ziffer: transformieren: `übersetzen(-50%,-${Zahl * 10}%)` Mit der obigen Formel lassen wir die Zahl bis .box-item span { Position: absolut; oben: 10px; links: 50%; transformieren: übersetzen(-50 %,-50 %); Buchstabenabstand: 10px; } Implementierung der Scroll-Animation Nachdem wir nun die spezifische Wurfdistanz jeder Zahl kennen, gestalten wir es so, dass die Zahlen zufällig rollen können: Nachfolgend finden Sie die spezifischen zufälligen Scroll- Code: setzeIntervall(() => { let Nummer = document.getElementById('Nummer') let random = getRandomNumber(0,10) Nummer.Stil.Transform = `übersetzen(-50%, -${random * 10}%)` }, 2000) Funktion Zufallszahl abrufen (min, max) { gibt Math.floor(Math.random() * (max - min + 1) + min) zurück } Bisher wurde unser digitaler Scroll-Effekt zunächst realisiert. Im nächsten Abschnitt werden wir diesen Effekt schrittweise verbessern, um den Geschäftsanforderungen gerecht zu werden. Vollständig Im vorherigen Abschnitt haben wir zunächst den Scroll-Effekt fertiggestellt. In diesem Abschnitt entwerfen wir eine allgemeine Akzeptieren von Parametern Diese Komponente akzeptiert nur einen Zahlenparameter, den wir in Requisiten: { Nummer: { Typ: Nummer, Standard: 0 } } Füllung Aus geschäftlichen Gründen beträgt die maximale Ziffernanzahl const MAX_LEN = 8 Wenn die Anzahl der übergebenen Ziffern kleiner als Da dieser Teil des Codes häufiger vorkommt, wird der Code aus Platzgründen nicht angezeigt. Sie können den entsprechenden JS-Code selbst schreiben. Rendern Wir trennen den obigen Füllstring in Zeichen-Arrays und rendern sie auf der Seite: computeNumber: ist ein Zeichenarray, zum Beispiel: ['0','0',',','0','0','0',','9','1','7'] <ul> <li :Klasse="{'Anzahl-Element': !isNaN(Element) }" v-for="(Element, Index) in Rechenzahl" :Schlüssel="Index" > <span v-if="!isNaN(item)"> <i ref="numberItem">0123456789</i> </span> <span v-else>{{item}}</span> </li> </ul> .Anzahl-Element { Breite: 50px; Hintergrund: URL (./number-bg.png) keine Wiederholung Mitte Mitte; Hintergrundgröße: 100 % 100 %; & > Spanne { Position: relativ; Anzeige: Inline-Block; Rand rechts: 10px; Breite: 100 %; Höhe: 100%; Schreibmodus: vertikal-rl; Textausrichtung: aufrecht; Überlauf: versteckt; & > ich { Position: absolut; oben: 0; links: 50%; transformieren: übersetzen(-50%,0); Übergang: Transformation 0,5 s, leichtes Ein- und Aussteigen; Buchstabenabstand: 10px; } } } Seiten-Rendering-Effekt: Zufälliges Wachstum der Zahlen, Simulation des Polling-Effekts Nachdem die Seite gerendert wurde, lassen wir die Zahlen scrollen. Wir entwerfen die folgenden zwei Methoden, wobei //Zeitgesteuerte Erhöhung der Zahl increaseNumber () { lass selbst = dies dieser.timer = setzeInterval(() => { self.neueZahl = self.neueZahl + getRandomNumber(1, 100) self.setNumberTransform() }, 3000) }, // Den Offset jeder Ziffer festlegen setNumberTransform () { Lassen Sie numberItems = this.$refs.numberItem let numberArr = this.computeNumber.filter(item => !isNaN(item)) für (let index = 0; index < AnzahlElemente.Länge; index++) { let elem = AnzahlElemente[index] elem.style.transform = `übersetzen(-50%, -${numberArr[index] * 10}%)` } } Der endgültige Effekt: 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. |
<<: Überlegungen zur Kürzung von mehrzeiligem Text mit einer Schaltfläche „Mehr anzeigen“
>>: MySQL Infobright-Installationsschritte
Beschreibung und Einführung Docker Inspect ist ei...
Beim Schreiben eines Webprojekts stieß ich auf ei...
Ich erstelle schon lange Websites, habe aber immer...
Redis verwendet das Apline-Image (Alps) von Redis...
1. Voraussetzungen Bei der Entwicklung von Front-...
Schauen wir uns den Panorama-Effekt an: Adresse a...
In letzter Zeit haben mich viele Studenten zur Ko...
Inhaltsverzeichnis 1. istPrototyp von() Beispiel ...
Inhaltsverzeichnis 01 Einführung in Atomic DDL 02...
Ein Kollege meldete, dass eine MySQL-Instanz aufg...
Sprites: In der Vergangenheit war jede Bildressou...
Vor Kurzem musste ich den Server erneut einem Str...
Inhaltsverzeichnis Die Auswirkungen der gemischte...
Meine MySQL-Version ist MySQL V5.7.9, bitte verwe...
Die Betriebsumgebung dieses Tutorials: Windows 7-...