国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Inhaltsverzeichnis
Verwenden Sie die Webanimationen -API, um nativ zu sein
Animationseffekte von Elementen
HTML -Struktur
Akkordeonklasse
Akkordeon einrichten
Beachten
Zusammenfassen
Heim Web-Frontend CSS-Tutorial So animieren Sie das Detailelement mit WAAPI

So animieren Sie das Detailelement mit WAAPI

Apr 01, 2025 am 04:14 AM

Verwenden Sie die Webanimationen -API, um nativ zu sein<details></details> Animationseffekte von Elementen

Eine der h?ufigsten Anforderungen an die Animation auf einer Website ist die Erweiterung und Abschlusswirkung im Akkordeonstil. Interessanterweise existierte die slideDown() -Funktion von Jquery bereits in der ersten Version im Jahr 2006.

In diesem Artikel wird erkl?rt<details></details> Animierte Elemente.

HTML -Struktur

Schauen wir uns zun?chst die HTML -Tag -Struktur an, die zur Implementierung dieser Animation erforderlich ist.

<details></details> Ein Element erfordert eines<summary></summary> Element.<summary></summary> Es ist etwas sichtbar, wenn das Akkordeon gefaltet ist.<details></details> Alle anderen Elemente innerhalb sind Teil des Inhalts im Akkordeon. Um die Implementierung von Animationseffekten zu erleichtern, wickeln wir sie in einen ein

Mitte.
<details>
  <summary>Akkordeontitel</summary>
  <div class="content">
    <p>
      Lorem Ipsum Dolor Sit Amet, Konsistende apisicing elit. Modi Une, Ex Coluptates Autem Aliquid Veniam Quis temporibus Repudiandae Illo, Nostrum, Pariatur Quae! Bei Animi Modi Dignissimos Corrupi platziert vuptatum!
    </p>
  </div>
</details>

Akkordeonklasse

Um die Wiederverwendbarkeit des Codes zu verbessern, sollten wir eine Akkordeonklasse erstellen. Auf diese Weise k?nnen wir jeden verwenden<details></details> Rufen Sie new Accordion() auf dem Element an.

 Klassenakkordeon {
  Konstruktor (el) {}
  Onclick (e) {}
  Shrink () {}
  offen() {}
  expandieren() {}
  onanimationfinish (ge?ffnet) {}
}

constructor()

Der Konstruktor wird verwendet, um die für jedes Akkordeon erforderlichen Daten zu speichern.

 Konstruktor (el) {
  this.el = el;
  this.summary = el.querySelector ('Zusammenfassung');
  this.content = el.querySelector ('. Inhalt');
  this.Animation = null;
  this.isclosing = false;
  this.isexpanding = false;
  this.summary.adDeVentListener ('klick', (e) => this.onclick (e));
}

onClick()

In der Funktion onClick() überprüfen wir, ob das Element animiert ist (schlie?en oder ausdehnen). Wenn der Benutzer auf das Akkordeon klickt, w?hrend das Element animiert ist, müssen wir diese überprüfung durchführen. Wenn die Klickgeschwindigkeit zu schnell ist, m?chten wir nicht, dass das Akkordeon von vollst?ndig erweitert auf vollst?ndig geschlossen wird.<details></details> Wenn ein Element ge?ffnet wird, fügt der Browser eine open Eigenschaft hinzu. Wir k?nnen den Wert dieser Eigenschaft durch this.el.open erhalten.EL.Open.

 Onclick (e) {
  E.PreventDefault ();
  this.el.style.overflow = 'versteckt';
  if (this.isclosing ||! this.el.open) {
    this.open ();
  } else if (this.isexpanding || this.el.open) {
    this.shrink ();
  }
}

shrink()

Diese shrink() -Funktion verwendet die .animate() -Funktion von WAAPI. Sie k?nnen die MDN -Dokumentation für weitere Informationen lesen. WAAPI ist CSS @keyframes sehr ?hnlich. Wir müssen die Start- und Keyframes der Animation definieren. In diesem Beispiel ben?tigen wir nur zwei Keyframes, die erste ist die aktuelle H?he des Elements und die zweite ist die H?he nach dem Abschluss des Akkordeons. Die aktuelle H?he wird in der startHeight -Variable gespeichert. Eine enge H?he wird in der endHeight -Variable gespeichert, die entspricht<summary></summary> H?he.

 Shrink () {
  this.isclosing = true;
  const startheight = `$ {this.el.offseteight} px`;
  const endHeight = `$ {this.summary.offseteight} px`;
  if (this.Animation) {
    this.Animation.cancel ();
  }
  this.Animation = this.el.animate ({{
    H?he: [Startheigheight, EndHeight]
  }, {
    Dauer: 400,
    Leichtigkeit: 'Eventual-Out'
  });
  this.Animation.onfinish = () => this.onanimationFinish (falsch);
  this.Animation.oncancel = () => this.isclosing = false;
}

open()

Die Funktion open() wird aufgerufen, wenn wir das Akkordeon erweitern m?chten. Diese Funktion steuert derzeit die Akkordeon -Animation nicht. Zuerst berechnen wir<details></details> Die H?he des Elements und wenden Sie es unter Verwendung des Inline -Stils auf das Element an. Sobald wir fertig sind, k?nnen wir seine open Eigenschaft festlegen, um den Inhalt sichtbar zu machen. Da wir jedoch overflow: hidden und feste H?he für das Element, ist der Inhalt immer noch versteckt. Anschlie?end warten wir darauf, dass der n?chste Frame die Funktion expand() aufruft und eine Animation für das Element erstellt.

 offen() {
  this.el.style.height = `$ {this.el.offseteight} px`;
  this.el.open = true;
  window.requestanimationFrame (() => this.expand ());
}

expand()

Die Funktion expand() ?hnelt der shrink() -Funktion, die jedoch nicht von der aktuellen H?he bis zur engen H?he, sondern von der H?he des Elements bis zur Endh?he animiert. Die Endh?he ist gleich<summary></summary> H?he plus H?he des internen Inhalts.

 expandieren() {
  this.isexpanding = true;
  const startheight = `$ {this.el.offseteight} px`;
  const endHeight = `$ {this.summary.offseteight this.content.offseteight} px`;
  if (this.Animation) {
    this.Animation.cancel ();
  }
  this.Animation = this.el.animate ({{
    H?he: [Startheigheight, EndHeight]
  }, {
    Dauer: 400,
    Leichtigkeit: 'Eventual-Out'
  });
  this.Animation.onfinish = () => this.onanimationfinish (true);
  this.Animation.oncancel = () => this.isexpanding = false;
}

onAnimationFinish()

Diese Funktion wird aufgerufen, wenn die Animation zusammengebrochen oder erweitert wird. Wie Sie sehen k?nnen, ist ein Parameter open und auf true gesetzt, wenn das Akkordeon eingeschaltet ist, sodass wir das open HTML -Attribut auf dem Element einstellen k?nnen, da es nicht mehr vom Browser behandelt wird.

 onanimationfinish (offen) {
  this.el.open = offen;
  this.Animation = null;
  this.isclosing = false;
  this.isexpanding = false;
  this.el.style.height = this.el.style.overflow = '';
}

Akkordeon einrichten

Wir haben den gr??ten Teil des Codes gemacht!

Alles, was übrig bleibt, ist für jedes der HTML<details></details> Elemente verwenden unsere Akkordeonklasse. Zu diesem Zweck verwenden wir<details></details> querySelectorAll auf dem Tag und erstellen Sie für jedes Element eine neue Akkordeoninstanz.

 document.querySelectorAll ('Details'). foreach ((el) => {
  neues Akkordeon (EL);
});

Beachten

Um die enge H?he und die offene H?he zu berechnen, müssen wir sicherstellen<summary></summary> Hab immer die gleiche H?he wie der Inhalt.

Versuchen Sie zum Beispiel nicht<summary></summary> Fügen Sie die Polsterung hinzu, wenn Sie eingeschaltet werden, da dies w?hrend des Animationsprozesses zu Sprüngen führen kann. Gleiches gilt für interne Inhalte - es sollte eine feste H?he haben, und wir sollten Inhalte mit H?hen?nderungen w?hrend der Animations?ffnung vermeiden.

Auch nicht<summary></summary> Fügen Sie die R?nder zwischen den Inhalten hinzu, da es keine H?henschlüsselrahmen berechnet. Verwenden Sie stattdessen die Polsterung direkt auf dem Inhalt, um einen gewissen Abstand hinzuzufügen.

Zusammenfassen

Das war's, wir haben eine wundersch?ne Akkordeon -Animation mit JavaScript ohne Bibliotheken erstellt!

So animieren Sie das Detailelement mit WAAPI

Bitte beachten Sie, dass der Bildpfad /uploads/20250331/174338369667e9ec90190a3.jpg 174338369667e9ec90190a3.jpg durch den tats?chlichen Bildpfad ersetzt werden muss. Ich kann nicht auf die Bilddatei zugreifen oder verarbeiten, damit ich nur das ursprüngliche Format beibehalten kann.

Das obige ist der detaillierte Inhalt vonSo animieren Sie das Detailelement mit WAAPI. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist 'Render-Blocking-CSS'? Was ist 'Render-Blocking-CSS'? Jun 24, 2025 am 12:42 AM

CSS -Bl?cke Seitenrenderung, da Browser inline und externe CSS standardm??ig als wichtige Ressourcen anzeigen, insbesondere mit importierten Stylesheets, Header gro?er Mengen an Inline -CSS und nicht optimierten Medienfragestilen. 1. extrahieren kritische CSS und einbetten Sie es in HTML ein; 2. Verz?gerung des Ladens nichtkritischer CSS durch JavaScript; 3.. Verwenden Sie Medienattribute, um das Laden wie Druckstile zu optimieren. 4. Komprimieren und verschmelzen CSS, um Anfragen zu reduzieren. Es wird empfohlen, Tools zum Extrahieren von Schlüssel -CSS zu verwenden, REL = "Vorspannung" zu kombinieren, und verwenden Sie die asynchrone Belastung und verwenden Sie die Medienverz?gerungsladeverletzung, um eine überm??ige Aufteilung und eine komplexe Skriptsteuerung zu vermeiden.

So verwenden Sie Lottien in Figma So verwenden Sie Lottien in Figma Jun 14, 2025 am 10:17 AM

Im folgenden Tutorial werde ich Ihnen zeigen, wie Sie Lottie -Animationen in Figma erstellen. Wir werden zwei farbenfrohe Designs verwenden, um zu veranlassen, wie Sie in Figma animieren k?nnen, und dann werde ich Ihnen zeigen, wie Sie von Figma zu Lottie -Animationen wechseln. Alles was Sie brauchen ist eine kostenlose Feige

Externe vs. interne CSS: Was ist der beste Ansatz? Externe vs. interne CSS: Was ist der beste Ansatz? Jun 20, 2025 am 12:45 AM

ThebestApproachforcssDependsonTheProject'Sspecificneeds.forlargerProjects, externalcssisbetterDuetomaintainability;

Muss mein CSS im unteren Fall sein? Muss mein CSS im unteren Fall sein? Jun 19, 2025 am 12:29 AM

Nein, cssdoesnothavetobeinlowercase.

CSS -Fallempfindlichkeit: Verstehen, worauf es ankommt CSS -Fallempfindlichkeit: Verstehen, worauf es ankommt Jun 20, 2025 am 12:09 AM

Csssmostlycase-unempfindlich, buturlsandfontfamilynamesarecase-sensitiv.1) Eigenschaften und ValueslikeColor: rot; sensitiv.2) URLSMUTMATTHESERVER'SCASE, z.

Was ist Autoprefixer und wie funktioniert es? Was ist Autoprefixer und wie funktioniert es? Jul 02, 2025 am 01:15 AM

AutoPrefixer ist ein Tool, das die Pr?fixe von Anbietern automatisch zu CSS -Attributen basierend auf dem Zielbrowserbereich hinzufügt. 1. Es l?st das Problem, die Pr?fixe mit Fehlern manuell aufrechtzuerhalten. 2. Arbeiten Sie das POSTCSS-Plug-in-Formular durch, analysieren Sie CSS, analysieren Sie Attribute, die vorangestellt werden müssen, und generieren Sie den Code gem?? Konfiguration. 3.. 4. Notizen enthalten nicht manuelles Hinzufügen von Pr?fixen, Konfigurationsaktualisierungen, Pr?fixe nicht alle Attribute, und es wird empfohlen, sie mit dem Pr?prozessor zu verwenden.

Was sind CSS -Z?hler? Was sind CSS -Z?hler? Jun 19, 2025 am 12:34 AM

CSSCOUNTERSCANATOMATIONSNUMBERSEctions und.1) usecounter-resettoinitialize, counter-IncrementtoIncrease, und Counter () orcounters () todisplayValues.2) kombinierte withjavascriptfordynamiccontentToEsSureAccurateupdates.

CSS: Wann ist der Fall wichtig (und wann nicht)? CSS: Wann ist der Fall wichtig (und wann nicht)? Jun 19, 2025 am 12:27 AM

In CSS sind Selektor- und Attributnamen fallempfindlich, w?hrend Werte, Namen, URLs und benutzerdefinierte Attribute fallempfindlich sind. 1. Die Auswahl- und Attributnamen sind unempfindlich, z. B. Hintergrundfarbe und Hintergrundfarbe sind gleich. 2. Die hexadezimale Farbe im Wert ist fallempfindlich, aber die benannte Farbe ist fallempfindlich, wie rot und rot ist ungültig. 3. Die URLs sind fallsempfindlich und k?nnen zu Ladeproblemen von Dateien führen. 4. Benutzerdefinierte Eigenschaften (Variablen) sind fallempfindlich und Sie müssen auf die Konsistenz des Falles bei der Verwendung achten.

See all articles