Heim Web-Frontend HTML-Tutorial Vergleichen Sie die Unterschiede und Zusammenhänge zwischen Übergang und Animation in CSS3

Vergleichen Sie die Unterschiede und Zusammenhänge zwischen Übergang und Animation in CSS3

Jul 19, 2017 am 09:58 AM
animation css3 transition

** Ich arbeite schon lange an einem Projekt. Die beiden CSS3-Eigenschaften Übergang und Animation werden oft in tatsächlichen Projekten verwendet. Wie folgt:

1: Führen Sie zunächst den Übergang ein:

a. Solche Situationen treten häufig in Projekten auf, beispielsweise bei einer Schaltflächenänderung die Hintergrundfarbe der Schaltfläche und die Schriftfarbe, wenn die Maus hinein bewegt wird. Derzeit machen wir normalerweise Folgendes:

.btn{width: 80px;height: 25px;border: 1px solid #333;color:#333;text-align: center;line-height: 25px;} 

.btn:hover{background:green;color:white;}
Nach dem Login kopieren

b, wir werden feststellen, dass sich der Hintergrund und die Schriftfarbe sofort ändern. Wird es besonders steif aussehen

Der Übergang wird zu diesem Zeitpunkt angezeigt, siehe Code:

.btn{width: 80px;height: 25px;border: 1px solid #333;color:#333;text-align: center;line-height: 25px;} 

.btn:hover{background:green;color:white;transition:.4s;}
Nach dem Login kopieren

c Nach dem Hinzufügen des Übergangs werden wir feststellen, dass die Hintergrundfarbe der Schaltfläche und die Schriftfarbe bis zum Ende einen allmählichen Prozess durchlaufen.

Woher kommt diese Allmählichkeit? Ja, sie beträgt 0,4 Sekunden (abgekürzt 0,4 Sekunden).

Wenn wir über 0,4 Sekunden sprechen, müssen wir über die verschiedenen Attribute des Übergangs sprechen . Ich habe nicht vor, hier alles im Detail zu schreiben, da Sie die Informationen selbst überprüfen können

(1: Die oben genannten 0,4 s sind die Abkürzung für eines der Attribute des Übergangs: transition-duration

transition-duration 顾名思义,表示动画持续的时间,也就是上面的0.4s了。在0.4秒的时间中完成背景颜色以及字体颜色的动画。

(2: Wenn es um eine kontinuierliche Animation in 0,4 Sekunden geht, müssen wir über die Geschwindigkeit des Objekts sprechen Wir wissen, dass ein Ding die folgenden Bewegungsarten hat:

  (a linear: gleichmäßige Geschwindigkeit

(b easy-in: Beschleunigung

  (c easy-out: langsamer machen                                                                                                                                〉 Übergang: 0,4s; Warum hat es eine Bewegung?

(3: Es sieht so aus. Transition hat ein Attribut namens

Die Standardeinstellung ist die Bewegungsform.

Nicht abgekürzt ist <p> Übergang<span class="token punctuation">: 0,4s Leichtigkeit<span style="background-color: #ff6600"><code class=" css">transition-timing-function code>

<span class="token property">transition<span class="token punctuation">: 0.4s ease</span></span>d,

Wir sehen, dass, nachdem die Schaltfläche schwebt, alles Durch CSS im Hover-Stil beschriebene Änderungen haben durch Übergang beschriebene Animationen.

Meine Erklärung dieses Satzes ist etwas kompliziert, gehen wir direkt zur Code-Erklärung über:

1) Wenn Sie möchten, dass die Hintergrundfarbe nur einen Zeitraum hat. Wie sollen wir Änderungen vornehmen?

2) Wir sehen den Hintergrund im obigen Code , ja, das liegt daran, dass in der Animation nur die Hintergrundfarbe der Animation dieses Zeitraums vorhanden ist.

Es ist die Abkürzung für eines der Übergangsattribute mit der Bezeichnung:
transition: 0.4s background ease-in
Nach dem Login kopieren

transition-propertye, wir werden in tatsächlichen Projekten feststellen, dass wir manchmal eine Animation benötigen, um eine verzögerte Präsentation zu haben, und nicht möchten, dass sie eine Animation generiert sofort ,顾名思义,指定属性。

Zu diesem Zeitpunkt wird beim Übergang ein weiteres Attribut angezeigt,

Siehe Code:

transition-delay

我们会发现,此时这个按钮的背景字体动画是在1秒钟之后才开始的。

 

----》   transition虽然简单好用,但是我们会发现它受到各种限制。

1:transition需要一个事件来触发,比如hover,所以没法在网页加载时自动发生

2:  transition是一次性的,不能重复发生,除非一再触发。

3: transition只能定义开始状态和结束状态,不能定义中间状态,也就是说只有两个状态。

4:一条transition规则,只能定义一个属性的变化,不能涉及多个属性。

 

(为了表达清晰,上述4条限制是我引用阮一峰大神博客里的简介)

 

为了突破这些限制,animation出来了。

 

2:animation:

 a),先不详细解释animation的各项属性了,直接来看代码吧

     .c{width: 100px;height: 100px;margin: 200px 0 300px 300px;background: orange; }
        .c:hover{animation: 2s change infinite;}

        @keyframes change {
            0% { background: orange; }
            50% { background: pink;width: 200px; }
            100% { background: red;height: 300px; }
        }
Nach dem Login kopieren

 

 上面的代码会产生这样的效果,见截图:

b),当鼠标移入div的时候,div会发生一系列的样式改变(截图无法表现过程),在2秒的时间完成背景颜色以及宽高的变化,并无限制重复这个两秒的动画,是因为什么呢?

 

 c),我准备作这样的解释,此时,你需要做一个animation动画只需要3

 1. 需要一个承载动画的元素,如div

 2. 当前的元素写一个animation的css,其中定义你所需要这个动画产生的效果。(你暂时不需要知道如何编写这个动画内部的css)

 3. 编写一个动画进程,以@keyframes关键字来定义,而这个动画的进程有一个名字,如change,

                                ----------》你可以把这个进程理解成一个函数,@keyframes对应的就是function,而change对应的就是函数名字-----------》最终等待被调用。

 

 好了,明白了以上三点,我们就可以来剖析animation的庐山真面目了。

 

 a)我们接着再来看这段代码:

animation: 2s change infinite;
    

@keyframes change {
       0% { background: orange; }
       50% { background: pink;width: 200px; }
       100% { background: red;height: 300px; }
}
Nach dem Login kopieren

 

1. 我们先来看这个“所谓的函数change”

    (1):这个change是animation其中的一个属性,叫做动画名字-----》 <span class="token property"><span style="background-color: #ff6600">animation-name</span><span class="token punctuation">:change;</span></span>

2. 我们再来看这个“百分比”

     (1):这个百分比你只要理解它是这个这个动画在多少时间内完成的一系列样式改变的进度。这个进度你可以描绘这个元素你想改变的的样式属性(可以定义多种)

     (2):当然也可以这样写:

@keyframes change {
            from { background: orange; }
            50% { background: pink;width: 200px; }
            to { background: red;height: 300px; }
}
Nach dem Login kopieren

 

 3.看完了动画制作的过程,现在我们来看如何调用这个动画:见代码:

.c:hover{animation: 2s change infinite;}
Nach dem Login kopieren

 (1),机智的你肯定看到了2s,是的没错,就是它让动画2秒完成。和transition一样,它是animation的一个属性,

                               叫做:<span class="token property">animation-duration<span class="token punctuation">: </span></span>2s;

 (2),机智的你肯定看到了change,是的没错,就是如此调用这个“动画函数”的.只需要在当前元素animation的css样式里写入就可以了。

 

  (3),刚刚前面我们说了,这段代码会在鼠标移入div元素后2秒的时间完成背景颜色以及宽高的变化,并无限制重复这个两秒的动画

     *:注意看到无限制三个字,

     *:无限制怎么来的呢?此时这段代码只剩下infinite了。

      *:不用想,他也是animation其中之一属性:叫做 <span class="token property">animation-iteration-count<span class="token punctuation">: infinite;</span></span>

      *:这个属性是用来定义这个动画应该播放多少次,infinite代表的无限制(无数次),当然你也可以在让它播放一个定值的数次,比如3次

animation-iteration-count: 3;
Nach dem Login kopieren

 在这里,你只需要在animation里的css里写入次数就可以了:

.c:hover{animation: 2s change 3;}
Nach dem Login kopieren

 

 

 4:这个动画虽然已经介绍完了,但是我们会发现动画在两秒钟后又会恢复原样(初始状态):

此时我们想让动画两秒执行完毕之后保持在结束状态,这该怎么办了,此时animation的另一个属性就派上用场了

                                                                        -------------》<span class="token property"><span style="background-color: #ff6600">animation-fill-mode</span><span class="token punctuation">:forwards<span class="token punctuation">;</span></span></span>

在这里,你只需要在animation里的css里写入forwards就可以了:

.c:hover{animation: 2s change 3 forwards;}
Nach dem Login kopieren

2秒动画结束后就会是这样:

 

 看看两者区别:

Transition作用是指定了某一个属性(如width、left、transform等)在两个值之间如何过渡,他包括transition-property、transition-duration、transition-timing-function、transition-delay等。 如果某一个元素指定了Transiton,那么当其某个属性改变的时候就会按照Transition指定的方式进行过渡,动画就这么产生了。 Animation也是通过指定某一个属性(如width、left、transform等)在两个值之间如何过渡来实现动画的,与Transition不同的是,Animation可以通过keyframe显式控制当前帧的属性值,而Transition只能隐式来进行(不能指定每帧的属性值),所以相对而言Animation的功能更加灵活。另外一个区别是Animation通过模拟属性值改变来实现动画,动画结束之后元素的属性没有变化;而Transition确实改变了元素的属性值,动画结束之后元素的属性发生了变化;这一点,这在实际应用中会产生很大的区别,也决定了二者各有春秋。 Animation模块包括了animation-name、animation-duration、animation-timing-function、animation-delay、animation-iteration-count、animation-play-state等属性。 其实说这么多,一句话就是:Transform和width、left一样,定义了元素很多静态样式,只不过通过Transition和Animation指定如何改变不同的属性值,才实现了动画。

 

 5:同样的,animation也和transition一样具备延时动画的属性:

                    ------------》<span class="token property">animation-delay<span class="token punctuation">: 1s<span class="token punctuation">;</span></span></span>

同样的animation简写写法如下,代表鼠标移入div内,1秒后动画开始

.c:hover{animation: 2s 1s change 3 forwards;}
Nach dem Login kopieren

 

6:同样的,animation也和transition一样具备动画以何种速度呈现的属性:默认是ease,它运动的形式是逐渐放慢的。

                ------------------》<span class="token property">animation-timing-function<span class="token punctuation">: ease<span class="token punctuation">;</span></span></span>

    

     (a  linear:匀速

     (b  ease-in:加速

     (c  ease-out:减速

     (d  cubic-bezier函数:自定义速度模式(几乎不用)

 

****要改变运动形势只要添加相应的速度代表参数了,见代码:

.c:hover{animation: 2s 1s change 3 forwards linear;}
Nach dem Login kopieren

 

7:animation还有一个属性我就不打算细写了,--------》animation-direction,默认情况下是normal,

  它是用来改变动画播放不仅只可以从结束状态跳回到起始状态这种形式。

 

8:上面说过,animation浏览器一加载便可以自动触发:

.c{width: 100px;height: 100px;margin: 200px 0 300px 300px;background: orange; animation: 2s change forwards;}
Nach dem Login kopieren

** 此时你会发现,浏览器一运行这个div就开始动画了。至于什么时候触发,那就要看项目具体需求了。

 

结语:自此,css3中的两大动画transition和animation就介绍完了。如有错误,欢迎指正。如果此文对你有所帮助, 请不要吝啬你的赞哦~

 

Das obige ist der detaillierte Inhalt vonVergleichen Sie die Unterschiede und Zusammenhänge zwischen Übergang und Animation in CSS3. 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

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 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
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)

Wie erzielt man mit reinem CSS3 einen Welleneffekt? (Codebeispiel) Wie erzielt man mit reinem CSS3 einen Welleneffekt? (Codebeispiel) Jun 28, 2022 pm 01:39 PM

Wie erzielt man mit reinem CSS3 einen Welleneffekt? In diesem Artikel erfahren Sie, wie Sie mit SVG- und CSS-Animationen Welleneffekte erstellen.

So beschleunigen Sie Animationseffekte in Windows 11: 2 Methoden erklärt So beschleunigen Sie Animationseffekte in Windows 11: 2 Methoden erklärt Apr 24, 2023 pm 04:55 PM

Als Microsoft Windows 11 auf den Markt brachte, brachte es viele Änderungen mit sich. Eine der Änderungen ist eine Erhöhung der Anzahl der Animationen der Benutzeroberfläche. Einige Benutzer möchten die Darstellung der Dinge ändern und müssen einen Weg finden, dies zu tun. Durch Animationen fühlt es sich besser und benutzerfreundlicher an. Animationen nutzen visuelle Effekte, um den Computer attraktiver und reaktionsfähiger aussehen zu lassen. Einige von ihnen enthalten nach einigen Sekunden oder Minuten verschiebbare Menüs. Es gibt viele Animationen auf Ihrem Computer, die die PC-Leistung beeinträchtigen, ihn verlangsamen und Ihre Arbeit beeinträchtigen können. In diesem Fall müssen Sie die Animation deaktivieren. In diesem Artikel werden verschiedene Möglichkeiten vorgestellt, wie Benutzer die Geschwindigkeit ihrer Animationen auf dem PC verbessern können. Sie können die Änderungen mit dem Registrierungseditor oder einer von Ihnen ausgeführten benutzerdefinierten Datei übernehmen. So verbessern Sie Animationen in Windows 11

CSS-Tipp: Verwenden Sie den Übergang, um den Hover-Status beizubehalten CSS-Tipp: Verwenden Sie den Übergang, um den Hover-Status beizubehalten Sep 27, 2022 pm 02:01 PM

Wie kann der Schwebezustand beibehalten werden? Im folgenden Artikel erfahren Sie, wie Sie den Hover-Status beibehalten, ohne JavaScript zu verwenden. Ich hoffe, er hilft Ihnen weiter!

So verwenden Sie CSS, um den rotierenden Hintergrundanimationseffekt von Elementen zu erzielen So verwenden Sie CSS, um den rotierenden Hintergrundanimationseffekt von Elementen zu erzielen Nov 21, 2023 am 09:05 AM

Wie man mit CSS rotierende Hintergrundbildanimationseffekte von Elementen implementiert, kann die visuelle Attraktivität und das Benutzererlebnis von Webseiten erhöhen. In diesem Artikel wird erläutert, wie Sie mithilfe von CSS den rotierenden Hintergrundanimationseffekt von Elementen erzielen, und es werden spezifische Codebeispiele bereitgestellt. Zuerst müssen wir ein Hintergrundbild vorbereiten, das ein beliebiges Bild sein kann, beispielsweise ein Bild der Sonne oder eines elektrischen Ventilators. Speichern Sie das Bild und nennen Sie es „bg.png“. Erstellen Sie als Nächstes eine HTML-Datei, fügen Sie der Datei ein div-Element hinzu und legen Sie es auf fest

Verwenden Sie CSS geschickt, um verschiedene seltsam geformte Schaltflächen zu realisieren (mit Code). Verwenden Sie CSS geschickt, um verschiedene seltsam geformte Schaltflächen zu realisieren (mit Code). Jul 19, 2022 am 11:28 AM

Dieser Artikel zeigt Ihnen, wie Sie mithilfe von CSS auf einfache Weise verschiedene seltsam geformte Schaltflächen realisieren können, die häufig vorkommen. Ich hoffe, dass er Ihnen hilfreich sein wird!

So verstecken Sie Elemente in CSS, ohne Platz zu beanspruchen So verstecken Sie Elemente in CSS, ohne Platz zu beanspruchen Jun 01, 2022 pm 07:15 PM

Zwei Methoden: 1. Fügen Sie mit dem Anzeigeattribut einfach den Stil „display:none;“ zum Element hinzu. 2. Verwenden Sie die Attribute „position“ und „top“, um die absolute Positionierung des Elements festzulegen, um das Element auszublenden. Fügen Sie dem Element einfach den Stil „position:absolute;top:-9999px;“ hinzu.

So implementieren Sie Spitzenränder in CSS3 So implementieren Sie Spitzenränder in CSS3 Sep 16, 2022 pm 07:11 PM

In CSS können Sie das Attribut „border-image“ verwenden, um einen Spitzenrand zu erzielen. Das Attribut „border-image“ kann Bilder zum Erstellen von Rändern verwenden, d. h. zum Hinzufügen eines Hintergrundbilds zum Rand. Sie müssen lediglich das Hintergrundbild als Spitzenstil angeben Bildrandbreite nach innen. Ob der Anfang wiederholt wird;".

Es zeigt sich, dass Textkarussell und Bildkarussell auch mit reinem CSS realisierbar sind! Es zeigt sich, dass Textkarussell und Bildkarussell auch mit reinem CSS realisierbar sind! Jun 10, 2022 pm 01:00 PM

Wie erstelle ich ein Textkarussell und ein Bildkarussell? Das erste, woran jeder denkt, ist die Verwendung von js. Tatsächlich können Textkarussell und Bildkarussell auch einen Blick auf die Implementierungsmethode werfen.

See all articles