Inhaltsverzeichnis
HTML结构
来自CSS动画专家Ana Tudor的说明
CSS翻转开关
CSS垂直翻转
支持IE浏览器
Heim Web-Frontend HTML-Tutorial 用CSS创建翻转动画_html/css_WEB-ITnose

用CSS创建翻转动画_html/css_WEB-ITnose

Jun 24, 2016 am 11:23 AM

  CSS动画是非常有意思的,用一些简单的属性就可以创建出来,从优雅的淡入到更加惊艳的效果都可以,翻页效果就是其中之一,它通过在容器的正面跟反面包含不同的内容来加以实现。本文就是用尽可能简单的方法来实现这种效果。

卡片翻转效果

查看演示

  注:本文不是第一篇讲述这种效果怎么做的文章,但是我发现很多将这个的文章都过于复杂,添加了很多额外的样式代码到案例里面,让读者搞不清那些代码是需要的哪些不是。本文不会有这个问题,只含有一些必要的样式,你可以随意美化翻转的每个页。

HTML结构

  以下HTML结构就是为了达到有两面的效果的:

<div class="flip-container" ontouchstart="this.classList.toggle('hover');">    <div class="flipper">        <div class="front">            <!-- 正面内容 -->        </div>        <div class="back">            <!-- 反面内容 -->        </div>    </div></div>
Nach dem Login kopieren

  正如你预料的,有两个内容面板:正面跟反面。你将惊奇的发现包含的CSS样式不多:

/* 整个容器,包括透视 */.flip-container {    perspective: 1000;}/* 鼠标放上去的时候翻转 */.flip-container:hover .flipper, .flip-container.hover .flipper {    transform: rotateY(180deg);}.flip-container, .front, .back {    width: 320px;    height: 480px;}/* 翻转速度设置 */.flipper {    transition: 1.5s;    transform-style: preserve-3d;    position: relative;}/* 翻转页的时候隐藏背面 */.front, .back {    backface-visibility: hidden;    position: absolute;    top: 0;    left: 0;}/* 前面板放在上面 */.front {    z-index: 2;    /* for firefox 31 */    transform: rotateY(0deg);}/* 背面初始的时候隐藏 */.back {    transform: rotateY(180deg);}
Nach dem Login kopieren

  我们来看下大体的实现过程:

  • 最外面的容器设置了整个动画区域的透视范围
  • 内层的容器是真正用于翻转的元素,父容器被激活的时候翻转了180度。这也是控制翻转速度的地方,把翻转角度改成-180度就会反方向翻转了。
  • 正面和反面的元素被决定定位了,这样他们就可以很好的层叠在彼此之上。他们的 backface-visibility 属性是 hidden, 所以当正面或者反面显示的时候,背面就隐藏起来。
  • 正面元素比反面元素有一个比较高的 z-index 属性值所以它可以预先编码和显示在上层。
  • 反面元素旋转了180度,成了背面。

  以上就是所有要做的了,将这个简单的结构放在你想放的地方,修改你需要的正面跟反面的样式。

来自CSS动画专家Ana Tudor的说明

  在卡片元素上给属性设置确定的值(比如 overflow: hidden)将禁止有3D变换的子元素。我相信这是很重要的,因为我就曾这样设置过,导致所有的子元素都成了一样的3D变换了。

CSS翻转开关

  如果你想用JavaScript代码来控制元素的翻转,一个简单的CSS类样式就可以了

.flip-container:hover .flipper, .flip-container.hover .flipper, .flip-container.flip .flipper {    transform: rotateY(180deg);}
Nach dem Login kopieren

  添加这个翻转的类样式到你想要用JavaScript控制的元素里面,使用下面的JavaScript代码就可以起作用了。

document.querySelector("#myCard").classList.toggle("flip")
Nach dem Login kopieren

CSS垂直翻转

  想要实现垂直翻转就需要添加 transform-origin 坐标轴的值。原来的翻转样式需要更新才能实现垂直地翻转。

.vertical.flip-container {    position: relative;}.vertical .back {    transform: rotateX(180deg);}.vertical.flip-container .flipper {    transform-origin: 100% 213.5px; /* 高度值的一半 */}.vertical.flip-container:hover .flipper {    transform: rotateX(-180deg);}
Nach dem Login kopieren

  你将看到绕着X轴翻转的效果。

支持IE浏览器

  要兼容IE浏览器就需要对代码进行一些改动,因为IE还没兼容所有现代 transform 的属性。 本质上还是正面跟反面元素同时翻转。

/* 整个容器,包括透视 */.flip-container {    perspective: 1000;    transform-style: preserve-3d;}/*  注意这里有修改 */.flip-container:hover .back {    transform: rotateY(0deg);}.flip-container:hover .front {    transform: rotateY(180deg);}.flip-container, .front, .back {    width: 320px;    height: 480px;}/* 翻转速度设置 */.flipper {    transition: 0.6s;    transform-style: preserve-3d;    position: relative;}/* 翻转页的时候隐藏背面 */.front, .back {    backface-visibility: hidden;    transition: 0.6s;    transform-style: preserve-3d;    position: absolute;    top: 0;    left: 0;}/* 注意这里有修改 */.front {    z-index: 2;    transform: rotateY(0deg);}/* 背面初始的时候隐藏 */.back {    transform: rotateY(-180deg);}/*     垂直翻转的修改*/.vertical.flip-container {    position: relative;}.vertical .back {    transform: rotateX(180deg);}.vertical.flip-container:hover .back {    transform: rotateX(0deg);}.vertical.flip-container:hover .front {    transform: rotateX(180deg);}
Nach dem Login kopieren

  上面的代码就会在IE10以上工作了。

查看演示

  CSS翻转动画是很经典的,是CSS动画运用的代表性例子。稍加深入,就是3D CSS动画效果了,CSS代码真的算是很少了。这个效果对于HTML5游戏是很优雅的。对于卡片式的效果,简直完美。

本文译自https://davidwalsh.name/css-flip

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

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)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

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 der Zweck des & lt; Fortschritts & gt; Element? Was ist der Zweck des & lt; Fortschritts & gt; Element? Mar 21, 2025 pm 12:34 PM

Der Artikel erörtert den HTML & lt; Progress & gt; Element, Absicht, Styling und Unterschiede vom & lt; Meter & gt; Element. Das Hauptaugenmerk liegt auf der Verwendung & lt; Fortschritt & gt; Für Aufgabenabschluss und & lt; Meter & gt; für stati

Was ist der Zweck des & lt; datalist & gt; Element? Was ist der Zweck des & lt; datalist & gt; Element? Mar 21, 2025 pm 12:33 PM

Der Artikel erörtert den HTML & lt; Datalist & gt; Element, das die Formulare verbessert, indem automatische Vorschläge bereitgestellt, die Benutzererfahrung verbessert und Fehler reduziert werden.Character Count: 159

Was ist der Zweck des & lt; Meter & gt; Element? Was ist der Zweck des & lt; Meter & gt; Element? Mar 21, 2025 pm 12:35 PM

Der Artikel erörtert das HTML & lt; Meter & gt; Element, verwendet zur Anzeige von Skalar- oder Bruchwerten innerhalb eines Bereichs und seine gemeinsamen Anwendungen in der Webentwicklung. Es differenziert & lt; Meter & gt; von & lt; Fortschritt & gt; und Ex

Was ist das Ansichtsfenster -Meta -Tag? Warum ist es wichtig für reaktionsschnelles Design? Was ist das Ansichtsfenster -Meta -Tag? Warum ist es wichtig für reaktionsschnelles Design? Mar 20, 2025 pm 05:56 PM

In dem Artikel wird das Ansichtsfenster -Meta -Tag erörtert, das für das reaktionsschnelle Webdesign auf mobilen Geräten unerlässlich ist. Es wird erläutert, wie die ordnungsgemäße Verwendung eine optimale Skalierung von Inhalten und Benutzerinteraktion gewährleistet, während Missbrauch zu Design- und Zugänglichkeitsproblemen führen kann.

Was sind die besten Praktiken für die Kompatibilität des Cross-Browsers in HTML5? Was sind die besten Praktiken für die Kompatibilität des Cross-Browsers in HTML5? Mar 17, 2025 pm 12:20 PM

In Artikel werden Best Practices zur Gewährleistung der HTML5-Cross-Browser-Kompatibilität erörtert und sich auf die Erkennung von Merkmalen, die progressive Verbesserung und die Testmethoden konzentriert.

Wie verwende ich HTML5 -Formularvalidierungsattribute, um die Benutzereingabe zu validieren? Wie verwende ich HTML5 -Formularvalidierungsattribute, um die Benutzereingabe zu validieren? Mar 17, 2025 pm 12:27 PM

In dem Artikel werden unter Verwendung von HTML5 -Formularvalidierungsattributen wie Erforderlich, Muster, Min, MAX und Längengrenzen erörtert, um die Benutzereingabe direkt im Browser zu validieren.

Wie benutze ich die HTML5 & lt; Zeit & gt; Element, um Daten und Zeiten semantisch darzustellen? Wie benutze ich die HTML5 & lt; Zeit & gt; Element, um Daten und Zeiten semantisch darzustellen? Mar 12, 2025 pm 04:05 PM

Dieser Artikel erklärt den HTML5 & lt; Time & gt; Element für semantische Datum/Uhrzeit. Es betont die Wichtigkeit des DateTime-Attributs für die Maschinenlesbarkeit (ISO 8601-Format) neben menschenlesbarem Text, das Zubehör steigert

Was ist der Zweck des & lt; iframe & gt; Etikett? Was sind die Sicherheitsüberlegungen bei der Verwendung? Was ist der Zweck des & lt; iframe & gt; Etikett? Was sind die Sicherheitsüberlegungen bei der Verwendung? Mar 20, 2025 pm 06:05 PM

Der Artikel erörtert das & lt; iframe & gt; Der Zweck von Tag, externe Inhalte in Webseiten, seine gemeinsamen Verwendungen, Sicherheitsrisiken und Alternativen wie Objekt -Tags und APIs einzubetten.

See all articles