suchen
HeimWeb-FrontendCSS-TutorialSo erzielen Sie einen Flip-Effekt in CS

So erzielen Sie einen Flip-Effekt in CS

Apr 13, 2021 am 10:40 AM
css3动画前端

So erzielen Sie den Flip-Effekt in CSS: 1. Stellen Sie die Perspektive des äußeren Elements ein. 2. Drehen Sie die zweite Umhüllungsebene um 180 Grad und stellen Sie die Übergangsgeschwindigkeit ein. 4. Stellen Sie „z“ ein -index" "Attribut; 5. Lassen Sie „zurück“ zu Beginn um 180 Grad spiegeln.

So erzielen Sie einen Flip-Effekt in CS

CSS3, um einen Flip-Effekt zu erzielen

Heute verwenden wir relativ einfaches CSS3, um einen Flip-Effekt zu erzielen.

Animationseffekt

So erzielen Sie einen Flip-Effekt in CS

So erzielen Sie einen Flip-Effekt in CS

Effektanalyse

Wenn die Maus über den enthaltenden Block gleitet, dreht sich das gesamte Element um 180 Grad, um den Wechsel von „Vorderseite“ und „Rückseite“ zu erreichen.

HTML-Analyse

Analyse: .container, .flip werden vorbereitet, um Animationseffekte zu erzielen. .front, .back umschließen jeweils ein Bild.
Der HTML-Code, um diesen Effekt zu erzielen, lautet wie folgt: .container.flip为了实现动画效果做准备。.front,.back各包裹一张图片。
实现该效果的HTML如下:

<p>
    </p><p>
        </p><p>
            <img  src="/static/imghwm/default1.png" data-src="images/pic00.jpg" class="lazy" alt="So erzielen Sie einen Flip-Effekt in CS" >
        </p>
        <p>
            <img  src="/static/imghwm/default1.png" data-src="images/pic01.jpg" class="lazy" alt="So erzielen Sie einen Flip-Effekt in CS" >
        </p>
    

CSS分析

1. 元素布局

为了实现以上效果,先进行元素布局。给.front,.back相对.flip进行绝对定位,让他们在相同位置重叠。
布局部分代码如下:

    .container,.front,.back{width:380px;height:270px;}
    .flip{position:relative;}
    .front,.back{position:absolute;top: 0px;left: 0px;}

设置之后我们发现.back的图片在.front的上面,因此给.front设置.fornt{z-index:2;}

注意:不要为了防止元素溢出设置overflow属性,这将导致3D效果无法实现。

w3 spec中描述:

The following CSS property values require the user agent to create a flattened representation of the descendant elements before they can be applied, and therefore force the used value of transform-style to flat:

  • overflow: any value other than visible.

  • opacity: any value less than 1.

  • filter: any value other than none.

  • clip: any value other than auto.

2. 动画效果的实现

(1) 为了实现动画效果首先给祖先元素.container,.flip设置以下属性,以触发3d效果和设置动画:

.container{perspective:1000;transform-style:preserve-3d;}
.flip{transition:0.6s;transform-style:preserve-3d;}

(2)接着,为了让图画翻转时不露出背面,给.front,.back设置backface-visibility属性:
.front,.back{backface-visibility:hidden;}

(3)为了让鼠标滑过包含块时,包含块翻转180度,以实现“正”“反”面的切换。给背面的元素设置transform:rotateY(-180deg),这时我们将无法看到.back

(4)最后,当用户的鼠标滑过.container包含块时,.flip翻转180度,这样,.front翻转180度,由于背面是hidden,无法看见;而.back翻转180度后,回到0度,以正面示人,这样我们就能看到背面了。

代码如下:

    .container{perspective:1000;transform-style:preserve-3d;}
    .container,.front,.back{width:380px;height:270px;}
    .flip{position:relative;transition:0.6s;transform-style:preserve-3d;}
    .front,.back{position:absolute;top: 0px;left: 0px;backface-visibility:hidden;}
    .front{z-index:2;}
    .back{transform:rotateY(-180deg);}
    .container:hover .flip{transform:rotateY(180deg);}

垂直翻转效果实现

垂直效果与水平翻转异曲同工。但是如果你只是把rotateY换成rotateX,那么你会发现图片是以顶部的那条线翻转的。
请注意:在上面的CSS代码中,我并未给.flip设置宽高,所以当给.flip应用transform:rotateY(180deg)时,按照默认的transform-origin值,是以元素的中心点为基本点翻转的。这里.flip的高度是0,所以当然是以顶部的那条线为基础翻转。所以解决的办法有二:

  1. .flip设置和.front,.back相同的宽高。

  2. .flip设置transform-origin:100% 135px/*高度的一半*/属性。
    OK,这样你就会发现垂直翻转是你想要的效果了!

总结

1. 思路

(1)最外层元素设置perspective以实现3D效果。
(2)当鼠标滑过最外层元素时,第二包裹层翻转180度,同时设置过渡速度。
(3)两个翻转块绝对定位,以致实现相同位置的叠加。同时设置backface-visibility避免在实现动画效果时露出背面。
(4)给.front设置z-index属性使它在写代码和展示时都在前面。
(5)让.backrrreee

CSS-Analyse🎜

1 Elementlayout

🎜Um den oben genannten Effekt zu erzielen, wird zunächst das Elementlayout durchgeführt. Geben Sie .front und .back eine absolute Positionierung relativ zu .flip, sodass sie sich an derselben Position überlappen.
Der Code für den Layoutteil lautet wie folgt: 🎜rrreee🎜Nachdem wir ihn eingerichtet hatten, stellten wir fest, dass sich das Bild von .back über .front befand, also wir haben .frontSet .fornt{z-index:2;🎜🎜Hinweis: Setzen Sie nicht den overflow Code> Attribut, um zu verhindern, dass Elemente überlaufen, was zu 3D führt Der Effekt kann nicht erreicht werden. 🎜🎜Beschrieben in der W3-Spezifikation: 🎜🎜🎜Die folgenden CSS-Eigenschaftswerte erfordern, dass der Benutzeragent eine abgeflachte Darstellung der untergeordneten Elemente erstellt, bevor sie angewendet werden können, und erzwingen daher den verwendeten Wert von transform-style auf flat:🎜 <ul> <li>🎜Überlauf: jeder andere Wert als sichtbar.🎜</li> <li>🎜Opazität: jeder Wert kleiner als 1.🎜</li> <li>🎜Filter: jeder andere Wert als keiner.🎜 li></li> <li>🎜clip: jeder andere Wert als auto.🎜</li> </ul>🎜<h4 id="Implementierung-von-Animationseffekten">2. Implementierung von Animationseffekten</h4>🎜(1) Um Animationseffekte zu erzielen, Geben Sie zuerst das Vorfahrenelement an.container,.flipLegen Sie die folgenden Eigenschaften fest, um 3D-Effekte auszulösen und Animationen festzulegen: 🎜rrreee🎜(2) Als nächstes, um das Zurück zu verhindern Um zu verhindern, dass das Bild beim Umdrehen belichtet wird, geben Sie .front,.backein. Legen Sie die Eigenschaft backface-visibility fest:
.front,.back{backface-visibility:hidden;} 🎜🎜(3) Um den enthaltenen Block um 180 Grad zu drehen, wenn die Maus darüber fährt, um den Wechsel von „vorne“ zu realisieren " und "Rückseite" Seiten. Setzen Sie transform:rotateY(-180deg) auf das Element auf der Rückseite, dann können wir .back nicht sehen. 🎜🎜(4) Wenn schließlich die Maus des Benutzers über den .container-enthaltenden Block gleitet, dreht sich .flip um 180 Grad, sodass .front entsteht Um 180 Grad drehen, da die Rückseite verborgen ist und nicht sichtbar ist; und .back dreht sich um 180 Grad, kehrt zu 0 Grad zurück und zeigt die Vorderseite, sodass wir kann die Rückseite sehen. 🎜🎜Der Code lautet wie folgt: 🎜rrreee🎜Vertikale Flip-Effekt-Implementierung🎜🎜Der vertikale Effekt ist der gleiche wie der horizontale Flip. Wenn Sie jedoch einfach „rotateY“ durch „rotateX“ ersetzen, werden Sie feststellen, dass das Bild mit der oberen Zeile gespiegelt wird.
Bitte beachten Sie: Im obigen CSS-Code habe ich die Breite und Höhe für .flip nicht festgelegt, also bei der Anwendung von transform:rotateY auf <code>.flip (180 Grad), gemäß dem Standardwert von transform-origin wird der Mittelpunkt des Elements als Basispunkt für das Spiegeln verwendet. Die Höhe von .flip beträgt hier 0, daher wird es natürlich basierend auf der obersten Zeile gespiegelt. Es gibt also zwei Lösungen: 🎜
  1. 🎜Setzen Sie .flip auf die gleiche Breite und Höhe wie .front, .back . 🎜
  2. 🎜Setzen Sie das Attribut transform-origin:100% 135px/*half the height*/ auf .flip.
    OK, Sie werden feststellen, dass das vertikale Spiegeln der gewünschte Effekt ist! 🎜
🎜Zusammenfassung🎜

1. Idee

🎜(1) Stellen Sie das äußerste Element auf Perspektive ein, um einen 3D-Effekt zu erzielen.
(2) Wenn die Maus über das äußerste Element gleitet, dreht sich die zweite Umhüllungsschicht um 180 Grad und legt die Übergangsgeschwindigkeit fest.
(3) Die beiden Flip-Blöcke sind absolut positioniert, sodass sie an derselben Position übereinandergelegt werden können. Legen Sie außerdem backface-visibility fest, um zu vermeiden, dass die Rückseite beim Implementieren von Animationseffekten freigelegt wird.
(4) Setzen Sie das Attribut z-index auf .front, damit es beim Schreiben und Anzeigen von Code im Vordergrund steht.
(5) Lassen Sie .back am Anfang um 180 Grad drehen, um die Rückseite anzuzeigen. 🎜

2. Aufgetretene Probleme:

(1) Um zwei Bilder unterschiedlicher Größe im Verpackungsblock konsistent zu machen, beträgt die Höhe von overflow属性,无法实现3d效果。解决方法:给img设置width:100%;height:100%;
(2)没有意识到.flip 0, sodass der Standardpunktfehler beim vertikalen Spiegeln zu unterschiedlichen Effekten führt.
(3) Nur wenn Sie mehr schreiben, können Sie mehr Fehler finden und dann wissen, wie Sie Fehler finden und beheben können.

【Empfohlenes Lernen: CSS-Video-Tutorial

Das obige ist der detaillierte Inhalt vonSo erzielen Sie einen Flip-Effekt in CS. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
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
Wie viel Spezifität haben @Rules wie @Keyframes und @Media?Wie viel Spezifität haben @Rules wie @Keyframes und @Media?Apr 18, 2025 am 11:34 AM

Ich habe diese Frage neulich bekommen. Mein erster Gedanke ist: seltsame Frage! Bei der Spezifität geht es um Selektoren, und Rules sind keine Selektoren, also ... irrelevant?

Können Sie @Media und @Support -Abfragen nisten?Können Sie @Media und @Support -Abfragen nisten?Apr 18, 2025 am 11:32 AM

Ja, Sie können, und es ist nicht wirklich wichtig in welcher Reihenfolge. Ein CSS -Präprozessor ist nicht erforderlich. Es funktioniert in regulären CSS.

Schnellschluck -Cache -BustingSchnellschluck -Cache -BustingApr 18, 2025 am 11:23 AM

Sie sollten auf jeden Fall weitausgestellte Cache-Header auf Ihren Vermögenswerten wie CSS und JavaScript (und Bilder und Schriftarten und was auch immer) festlegen. Das sagt dem Browser

Auf der Suche nach einem Stapel, der die Qualität und Komplexität von CSS überwachtAuf der Suche nach einem Stapel, der die Qualität und Komplexität von CSS überwachtApr 18, 2025 am 11:22 AM

Viele Entwickler schreiben darüber, wie sie eine CSS -Codebasis pflegen können, aber nicht viele von ihnen schreiben darüber, wie sie die Qualität dieser Codebasis messen. Sicher, wir haben

Datalist dient dazu, Werte vorzuschlagen, ohne Werte durchzusetzenDatalist dient dazu, Werte vorzuschlagen, ohne Werte durchzusetzenApr 18, 2025 am 11:08 AM

Haben Sie jemals ein Formular gehabt, das ein kurzes, willkürliches Stück Text akzeptieren musste? Wie ein Name oder was auch immer. Das ist genau das, wofür es ist. Es gibt viele

Frontkonferenz in ZürichFrontkonferenz in ZürichApr 18, 2025 am 11:03 AM

Ich bin so aufgeregt, nach Zürich, der Schweiz, zur Frontkonferenz zu gehen (liebe diesen Namen und diese URL!). Ich war noch nie in der Schweiz, also bin ich aufgeregt

Erstellen einer serverlosen Full-Stack-Anwendung mit Cloudflare-MitarbeiternErstellen einer serverlosen Full-Stack-Anwendung mit Cloudflare-MitarbeiternApr 18, 2025 am 10:58 AM

Eine meiner Lieblingsentwicklungen in der Softwareentwicklung war das Aufkommen von Serverless. Als Entwickler, der die Tendenz hat, sich in den Details festzuhalten

Erstellen dynamischer Routen in einer Nuxt -AnwendungErstellen dynamischer Routen in einer Nuxt -AnwendungApr 18, 2025 am 10:53 AM

In diesem Beitrag werden wir eine E -Commerce -Store -Demo verwenden, die ich für Netlify erstellt und bereitgestellt habe, um zu zeigen, wie wir dynamische Routen für eingehende Daten erstellen können. Es ist fair

See all articles

Heiße KI -Werkzeuge

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.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor