亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

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)

Hei?e Themen

PHP-Tutorial
1488
72
CSS -Tutorial zum Erstellen von Ladespinner und Animationen CSS -Tutorial zum Erstellen von Ladespinner und Animationen Jul 07, 2025 am 12:07 AM

Es gibt drei M?glichkeiten, einen CSS -Laderotator zu erstellen: 1. Verwenden Sie den Basisrotator der Grenzen, um eine einfache Animation durch HTML und CSS zu erreichen. 2. Verwenden Sie einen benutzerdefinierten Rotator mit mehreren Punkten, um den Sprungeffekt durch verschiedene Verz?gerungszeiten zu erreichen. 3. Fügen Sie einen Rotator in die Taste hinzu und wechseln Sie den Klassen über JavaScript, um den Ladestatus anzuzeigen. Jeder Ansatz betont die Bedeutung von Entwurfsdetails wie Farbe, Gr??e, Zug?nglichkeit und Leistungsoptimierung, um die Benutzererfahrung zu verbessern.

Behandeln Sie Probleme und Pr?fixe von CSS -Browser -Kompatibilit?t und Pr?fixe Behandeln Sie Probleme und Pr?fixe von CSS -Browser -Kompatibilit?t und Pr?fixe Jul 07, 2025 am 01:44 AM

Um mit CSS -Browser -Kompatibilit?t und Pr?fixproblemen umzugehen, müssen Sie die Unterschiede im Browser -Support verstehen und Anbieterpr?fixe vernünftigerweise verwenden. 1. Verstehen Sie gemeinsame Probleme wie Flexbox und Grid -Unterstützung, Position: Sticky Invaly und Animationsleistung ist unterschiedlich. 2. überprüfen Sie den Best?tigungsunterstützungsstatus von Caniuse. 3. Verwenden Sie korrekt -webkit-, -moz-, -ms-, -o- und andere Herstellerpr?fixe; 4. Es wird empfohlen, Autoprefixer zu verwenden, um automatisch Pr?fixe hinzuzufügen. 5. Postcss installieren und Browserlist konfigurieren, um den Zielbrowser anzugeben. 6. automatisch die Kompatibilit?t w?hrend des Baus bew?ltigen; 7. Modernizr -Erkennungsmerkmale k?nnen für alte Projekte verwendet werden; 8. Keine Notwendigkeit, die Konsistenz aller Browser zu verfolgen,

Was ist der Unterschied zwischen Anzeige: Inline, Anzeige: Block und Anzeige: Inline-Block? Was ist der Unterschied zwischen Anzeige: Inline, Anzeige: Block und Anzeige: Inline-Block? Jul 11, 2025 am 03:25 AM

ThemaNDiffercesbetweenplay: Inline, Block, Andinline-Blockinhtml/CsSarelayoutBehavior, Spaceusage und Stylingcontrol.1.inlineelementsflowwithtext, Don'tstartonNewlines, Ignorewidth/HeighthThorchingstyhorching-/idelthorchorching/ardaldhordhortaliTalding/ardaldhordelthortex

Das Styling besuchte Links unterschiedlich mit CSS Das Styling besuchte Links unterschiedlich mit CSS Jul 11, 2025 am 03:26 AM

Durch das Festlegen des von Ihnen besuchten Links k?nnen Sie die Benutzererfahrung verbessern, insbesondere in inhaltsintensiven Websites, um den Benutzern dabei zu helfen, sich besser zu navigieren. 1. Verwenden Sie CSS: Besuchte Pseudoklasse, um den Stil des besuchten Links wie Farb?nderungen zu definieren. 2. Beachten Sie, dass der Browser nur eine ?nderung einiger Attribute aufgrund von Datenschutzbeschr?nkungen erm?glicht. 3. Die Farbauswahl sollte mit dem Gesamtstil koordiniert werden, um abrupte abrupt zu werden. 4. Das mobile Terminal zeigt diesen Effekt m?glicherweise nicht an. Es wird empfohlen, ihn mit anderen visuellen Eingabeaufforderungen wie Icon -Auxiliary -Logos zu kombinieren.

Erstellen von benutzerdefinierten Formen mit CSS-Clip-Pfad Erstellen von benutzerdefinierten Formen mit CSS-Clip-Pfad Jul 09, 2025 am 01:29 AM

Verwenden Sie das Clip-Pfad-Attribut von CSS, um Elemente in benutzerdefinierte Formen wie Dreiecke, kreisf?rmige Kerben, Polygone usw. zu erregen, ohne sich auf Bilder oder SVGs zu verlassen. Zu den Vorteilen geh?ren: 1.. Unterstützt eine Vielzahl von Grundformen wie Circle, Ellipse, Polygon usw.; 2. reagierende Anpassung und anpassbar an mobile Terminals; 3. Einfach zu animation und kann mit Hover oder JavaScript kombiniert werden, um dynamische Effekte zu erzielen. 4. Es wirkt sich nicht auf den Layoutfluss aus und erfüllt nur den Anzeigebereich. H?ufige Verwendungen sind z. B. kreisf?rmiger Clip-Pfad: Kreis (50pxatcenter) und Dreieck-Clip-Pfad: Polygon (50%0%, 100 0%, 0 0%). Beachten

Was ist die CSS -Malen -API? Was ist die CSS -Malen -API? Jul 04, 2025 am 02:16 AM

ThecsspaintingapienablesDynamicimageGenerationIncsSusingjavaScript.1.DevelopersCreateApaintworkletClassClasswithapaint () Methode.2.TheyRegisteritviaRegisterPaint (). 3.TheCustonTfunctionDenusedincsincssproperties ?hnlich von Background-Image.ThisallowsfordyNamicvis

Wie erstelle ich reaktionsschnelle Bilder mit CSS? Wie erstelle ich reaktionsschnelle Bilder mit CSS? Jul 15, 2025 am 01:10 AM

Um reaktionsschnelle Bilder mit CSS zu erstellen, kann es haupts?chlich durch die folgenden Methoden erreicht werden: 1. Verwenden Sie maximale Breite: 100% und H?he: Auto, damit das Bild an die Containerbreite anpasst und gleichzeitig den Anteil beibeh?lt. 2. Verwenden Sie die SRCSet- und Gr??enattribute von HTML, um die an verschiedenen Bildschirme angepassten Bildquellen intelligent zu laden. 3.. Verwenden Sie Objektfit und Objektposition, um die Bildaufbindung und Fokusanzeige zu steuern. Gemeinsam stellen diese Methoden sicher, dass die Bilder auf verschiedenen Ger?ten klar und wundersch?n pr?sentiert werden.

Was sind gemeinsame Inkonsistenzen von CSS -Browser? Was sind gemeinsame Inkonsistenzen von CSS -Browser? Jul 26, 2025 am 07:04 AM

Verschiedene Browser weisen Unterschiede in der CSS -Analyse auf, was zu inkonsistenten Anzeigeeffekten führt, haupts?chlich die Differenzentscheidung, die Berechnung des Boxmodells, die Flexbox- und Raster -Layout -Unterstützung und das inkonsistente Verhalten bestimmter CSS -Attribute. 1. Die Standardstilverarbeitung ist inkonsistent. Die L?sung besteht darin, CSSReset oder Normalize.css zu verwenden, um den anf?nglichen Stil zu vereinen. 2. Die Box -Modellberechnung der alten Version von IE ist unterschiedlich. Es wird empfohlen, eine einheitliche Boxgr??e: Border-Box zu verwenden. 3. Flexbox und Grid führen in Kantenf?llen oder in alten Versionen unterschiedlich ab. Weitere Tests und verwenden Sie Autoprefixer; 4. Einige CSS -Attributverhalten sind inkonsistent. Caniuse muss konsultiert und herabgestuft werden.

See all articles