Durchführung von Prozessanalysen(1) Wie rufe ich wiederholt an? Antwort: Kapseln Sie eine Funktion und rufen Sie sie einmal auf Code-Analyse: Funktion animieren (Objekt, Ziel, Rückruf) { // Detaillierte Implementierungsschritte}; animieren: (Animationsfunktion) obj (Animationsobjekt): dem der Animationseffekt hinzugefügt wird Ziel (Zielwert): Wie weit soll man sich bewegen? callback (Rückruffunktion): welche Funktion soll gleichzeitig ausgeführt werden (2) Wie erreicht man den Lockerungseffekt? (Kernalgorithmus für Easy-Motion-Animation) Antwort: Bewegungsdistanz = (Zielwert – aktuelle Boxposition) / 10. Die Bewegungsdistanz wird schrittweise verringert, bis sie stoppt, wodurch das Easing-Prinzip realisiert wird. Code-Analyse: var Schritt = (Ziel – Objekt.OffsetLeft) / 10; Schritt (Bewegungsdistanz): die Distanz, um die sich das Element bewegen soll Ziel (Zielwert): Wie weit soll man sich bewegen? obj.offsetLeft (die aktuelle Position der Box): der aktuelle Abstand der Box von der linken Seite (3) Warum kann es nicht an die angegebene Position bewegt werden? (Die angegebene Zielentfernung beträgt 500 Pixel und endet bei 496,4) Antwort: Weil gerundet werden muss, werden positive Zahlen aufgerundet und negative Zahlen abgerundet Code-Analyse: Schritt = Schritt > 0? Math.ceil(Schritt) : Math.floor(Schritt); Wenn die zurückzulegende Distanz setp eine positive Zahl ist, wird sie aufgerundet, wenn es eine negative Zahl ist, wird sie abgerundet und ein ternärer Ausdruck wird verwendet, um den Code zu optimieren und die Gesamtqualität zu verbessern. (4) Wie kann man das Zielelement tatsächlich bewegen? A: Fügen Sie einen Timer hinzu und weisen Sie dem Element die Echtzeit-Bewegungsdistanz (Schrittlänge) zu Code-Analyse: var timer = setInterval(function () { //Detaillierter Implementierungscode}, 15); //Timer hinzufügen obj.style.left = obj.offsetLeft + step + 'px'; //Schrittlänge 1. Geben Sie dem Timer einen Namen, damit er leichter gelöscht werden kann. Stellen Sie die Zeit auf 15 ein (15 wird in der tatsächlichen Entwicklung häufig verwendet). 2. Der Wert auf der linken Seite des Elements = der Abstand vom Element nach links + die Bewegungsdistanz + „px“ (denken Sie daran, die Einheit px hinzuzufügen). Das Implementierungsprinzip besteht darin, dem Element kontinuierlich den neuesten Wert zuzuweisen, um den Effekt einer Animation zu erzielen. (5) Warum wird es so nervig bzw. immer schneller? Antwort: Da der Timer wiederholt hinzugefügt wird, muss der Timer bei jedem Aufruf gelöscht werden. Code-Analyse: Intervall löschen(Timer); Es gibt zwei Stellen, die gelöscht werden müssen. Die erste ist, wenn die Easing-Animationsfunktion aufgerufen wird, um Geisterbilder und Geschwindigkeitsunterbrechungen zu vermeiden. Die zweite besteht darin, festzustellen, ob das Element die angegebene Position erreicht hat. Wenn es die angegebene Position erreicht hat, stoppen Sie den Timer. Falltest:<!DOCTYPE html> <html lang="de"> <Kopf> <meta charset="UTF-8"> <meta http-equiv="X-UA-kompatibel" content="IE=edge"> <meta name="viewport" content="width=Gerätebreite, Anfangsmaßstab=1.0"> <title>Dokument</title> <Stil> .Schieberegler { /* Breite: 240px; */ /* Höhe: 40px; */ /* Die Positionierung der übergeordneten Box richtet sich nach den tatsächlichen Anforderungen*/ Position: absolut; rechts: 0; oben: 100px; Textausrichtung: zentriert; Zeilenhöhe: 40px; /* Anzeige: Block; */ Breite: 40px; Höhe: 40px; Cursor: Zeiger; } .sp { Position: relativ; Farbe: #fff; } .con { /* Absolute Positionierung festlegen, sodass es im übergeordneten Feld schwebt*/ Position: absolut; links: 0; oben: 0; Breite: 200px; Höhe: 40px; Hintergrundfarbe: rosa; z-Index: -1; Farbe: #fff; } </Stil> <script src="./animate.js"></script> </Kopf> <Text> <div Klasse="Schieberegler"> <span class="sp">←</span> <div class="con">Problem-Feedback</div> </div> <Skript> var Schieberegler = document.querySelector('. Schieberegler'); // var sp = document.querySelector('.sp'); var con = document.querySelector('.con'); sliderbar.addEventListener('Mauseingabe', Funktion() { //animieren(Objekt, Ziel, Rückruf); animieren(con, -160, Funktion() { Schieberegler.Kinder[0].innerHTML = '→'; }); }) sliderbar.addEventListener('mouseleave', Funktion() { //animieren(Objekt, Ziel, Rückruf); animieren(con, 0, Funktion() { Schieberegler.Kinder[0].innerHTML = '←'; }); }) </Skript> </body> </html> Die Grundidee besteht darin, die Animationsfunktion durch Hinzufügen von Mausereignissen zum Feld aufzurufen, um den endgültigen Effekt zu erzielen. Wirkung der Operation: Der endgültige Kapselungscode der Easing-Animationsfunktion (animate.js):
Das Leben hört nie auf, das Lernen hört nie auf, die Tastaturen sind abgenutzt und das Monatsgehalt übersteigt Zehntausend! Komm schon, Programmierer Dies ist das Ende dieses Artikels über die Kapselung und Verwendung von JavaScript-Zeitlupenanimationen. Weitere relevante Inhalte zu JavaScript-Zeitlupenanimationen finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Analyse des Prinzips von Nginx unter Verwendung des Lua-Moduls zur Implementierung von WAF
Wenn Menschen zu lange untätig waren, denken sie,...
Indexerweiterung: InnoDB erweitert automatisch je...
Inhaltsverzeichnis Ergebnisse erzielen Einführung...
Vorwort: Verwenden Sie das Element-Framework in v...
Ein Kollege meldete, dass eine MySQL-Instanz aufg...
Hintergrundanforderungen: Das ERP-System muss ein...
Microsoft IIS IIS (Internet Information Server) i...
tcpdump ist ein flexibles und leistungsstarkes To...
Inhaltsverzeichnis 1. Einführung in Gojs 2. Gojs ...
<br />Vorheriger Artikel: Webdesign-Tutorial...
Einfaches Beispiel für das Hinzufügen und Entfern...
Die Datei shutdown.bat enthält einen Satz wenn ni...
Inhaltsverzeichnis Einführung Protokollklassifizi...
Vorwort Wie Sie alle wissen, sind wir bei MySQL-B...
Gespeicherte MySQL-Prozedur 1. Erstellen Sie die ...