楼主喜欢追求视觉上的享受,虽常以牺牲性能无法兼容为代价却也乐此不疲。本文就通过一个个的demo演示来简单了解下css3下的Transform,Transition和Animation。
本文需要实现效果:(请用chrome打开)
Transform
根据我的理解,transform和width、height、background一样,都是dom的属性,不同的是它是css3旗下的,比较?,能够对原来的dom元素进行移动、缩放、转动、拉长或拉伸,跟canvas上的某些api神似,这么说来transform好像能干些js才能干的事。
transform分2D变换和3D变换,w3school中有很好的介绍和例子,具体请猛戳:CSS3 2D 转换 CSS3 3D 转换
为了方便查找,我把w3school上的截图在这里保存一份:
Transition
transition的解释是过渡,我的理解是css之间的变换,但是这个变换很?很平滑,类似动画。举个栗子,一开始某个dom的类是classA,通过某种操作(比如被点击了)后变成了classB,如果没有transition,类之间的变换是很快的,机械般瞬间完成,但是有了transition,这便会是一个很缓和平滑的过程。
我们通过demo来讲解transition的使用方式。
写好如下的html文件:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><style type="text/css"></style> <img src='http://hanzichi.github.io/img/img0.png' / alt="【css3】通过图片轮播来了解Transform,Transition和Animation_html/css_WEB-ITnose" >
打开来是非常简单的一张图,加上css:
img { -webkit-transition: all 1s ease-in-out 0s;}img:hover { -webkit-transform: rotate(360deg) scale(0.5, 0.5); opacity: 0;}
效果请猛戳:transition变换 (ps:所有demo都没有做兼容 请用chrome打开)
是否很简单?demo中,你只需设定好图片(img标签)原先的属性和hover后的属性,中间的变换过程全由transition搞定!而transition加在某个元素下(demo的transition加在img标签下),仿佛设置了一个监听器,一旦该元素的属性值即将要发生变化,就会自动检查transition中的设定的属性,一旦发现相匹配,则进行平滑的过渡。
transition有4个属性,语法:transition: property duration timing-function delay 从前到后4个属性依次可理解成“过渡动画变换的属性”、“过渡花费时间”、“过渡过程的速度变化”和“过渡开始前的等待时间”(默认值:all 0 ease 0 前两个是必须的 后两个可省略)。
如果不是所有属性都要进行平滑过渡,或者各属性过渡的时间、速度等设置各有需求,可以把要过渡的属性用逗号隔开,demo可写成:
img { -webkit-transition: -webkit-transform 1s ease-in-out 0s, opacity 1s ease-in-out 1s;}img:hover { -webkit-transform: rotate(360deg) scale(0.5, 0.5); opacity: 0;}
如果非得把transition的四个属性分开来写,可以这样:
img { -webkit-transition-property: -webkit-transform, opacity; -webkit-transition-duration: 1s; -webkit-transition-timing-function: ease-in-out; -webkit-transition-delay: 0s;}
我把后三个属性放在一起只写了一个值(因为值一样),你也可以像property一样分开来写用逗号隔开。
这里再介绍下timing-function的取值。六大取值:(还是盗图w3cschool)
小结:一般transition应用在dom的class变换中,可先行写好机械的变换,然后添加过渡效果。
Animation
Animation的解释是动画,加强版的transition。
如果说transition能实现某些js效果,animation就更像是js了。类似于写一个canvas特效,特效总共比如说多少时间,我们能规定在什么时候该出现什么样的场景,而各个场景间的转换则完全由css3本身负责,而keyframes好比定义了一个js方法。
主要应用在某个元素需要进行连续的n次css变换。一个简单的demo如下:animation动画
我们在@keyframes 中创建动画时,请把它捆绑到某个选择器,否则不会产生动画效果。
通过规定至少以下两项 CSS3 动画属性,即可将动画绑定到选择器:
demo代码:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><style type="text/css"> img { /*-webkit-animation: myfirst 5s;*/ } @-webkit-keyframes myfirst { 0% { -webkit-transform: rotate(0deg) scale(1, 1); opacity: 1; } 50% { -webkit-transform: rotate(360deg) scale(0.5, 0.5); opacity: 0.5; } 100% { -webkit-transform: rotate(0deg) scale(1, 1) translate(300px, 200px); opacity: 1; } } img { -webkit-animation: myfirst 5s linear 0s 1 alternate; /*停在结束位置*/ -webkit-animation-fill-mode: forwards; }</style> <img src='http://hanzichi.github.io/img/img0.png' / alt="【css3】通过图片轮播来了解Transform,Transition和Animation_html/css_WEB-ITnose" >
更多请猛戳 CSS3 动画
具体应用:图片轮播
类似应用可先写好无过渡的代码,然后再在class转换之间添加transition。
该demo(图片自动轮播)和transition有关的核心代码就几行,而js只是简单的对元素的class进行赋值,动画过程全由css3完成!
img { position: absolute; -webkit-transition: all 2s ease-out;}.disappear { opacity: 0;}.show { opacity: 1;}
当img的class从show转换成disappear或者从disappear转换成show时(img标签下的class变换),就会执行transition设置的过渡动画。
另一个demo的实现也大同小异,有兴趣的可以参考源码:源码请猛戳
总结
总的来说,transform只是为dom增添一些属性,而如果搭配transition或者animation则能完成一些动画效果,我觉得实际应用较多的应该还是transition,可配合伪类或者click等事件。
楼主对以上的理解不深,如有出入,还请指出。
如需了解更多,可以参考这篇 CSS3 Transitions, Transforms和Animation使用简介与应用展示

WebdevelopmentRelieSonHtml, CSS und JavaScript: 1) HtmlStructuresContent, 2) CSSstylesit und 3) JavaScriptaddssinteraktivität, Bildung von TheBasisofModerernwebexperiences.

Die Rolle von HTML besteht darin, die Struktur und den Inhalt einer Webseite durch Tags und Attribute zu definieren. 1. HTML organisiert Inhalte über Tags wie das Lesen und Verständnis. 2. Verwenden Sie semantische Tags wie usw., um die Zugänglichkeit und SEO zu verbessern. 3. Optimierung des HTML -Codes kann die Ladegeschwindigkeit und die Benutzererfahrung der Webseite verbessern.

HtmlisaspecifictypeofcodeFocusedonstructuringuringwebcontent, während "Code" breitincludesluages -ähnlichjavaScriptandpythonforfunctionality.1) htmldefineswebpageStructureStags.2) "Code" cometesaWiNrangeOfLanguagesForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForForfirsInsForfunctionNacts

HTML, CSS und JavaScript sind die drei Säulen der Webentwicklung. 1. HTML definiert die Webseitenstruktur und verwendet Tags wie z.

HTML definiert die Webstruktur, CSS ist für Stil und Layout verantwortlich, und JavaScript ergibt eine dynamische Interaktion. Die drei erfüllen ihre Aufgaben in der Webentwicklung und erstellen gemeinsam eine farbenfrohe Website.

HTML ist für Anfänger geeignet, da es einfach und leicht zu lernen ist und schnell Ergebnisse sehen kann. 1) Die Lernkurve von HTML ist glatt und leicht zu beginnen. 2) Beherrschen Sie einfach die grundlegenden Tags, um Webseiten zu erstellen. 3) hohe Flexibilität und kann in Kombination mit CSS und JavaScript verwendet werden. 4) Reiche Lernressourcen und moderne Tools unterstützen den Lernprozess.

AnexampleofaTartingTaginHtmlis, die, die starttagsaresesinginhtmlastheyinitiateElements, definetheirtypes, andarecrucialForstructuringwebpages und -konstruktionsthedoms.

Wie gestalte ich den Segmentierungseffekt der gepunkteten Linien im Menü? Bei der Gestaltung von Menüs ist es normalerweise nicht schwierig, links und rechts zwischen dem Gerichtsnamen und dem Preis von Schalen auszurichten, aber wie wäre es mit der gepunkteten Linie oder dem Punkt in der Mitte ...


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

WebStorm-Mac-Version
Nützliche JavaScript-Entwicklungstools

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor