5分钟学会CSS动画-Part1:Transition

刚接触css的时候一直很困惑动画的问题。Transition,Transform还有Translate这些长得很像的属性都是什么?如何使用animation?这些虽然看起来很复杂很繁琐,其实搞清楚之后很简单,而且很实用,加了动画效果的网页会立刻显得生动活泼。

CSS动画主要由两个属性来实现:

  1. Transition
  2. Animation + Keyframes

这篇文章主要介绍Transition,关于Animation的看这里

transition的意思就是当某个元素的某个属性发生变化的时候,transition会帮你添加中间帧,让这个变化不那么生硬,比如下面这样一个简单的box的hover动画,如果不添加这一行transition代码就会生硬的直接从方变成圆。

transition1.gif

基本语法

.element {
  transition: [property] [duration] [ease] [delay];
                变化属性    变化时间   曲线   延时
}

比如.red { transition: opacity 300ms ease-in-out 1s;}意思就是transition会监测这个class名为red的元素,如果这个元素的opacity发生了变化,那么transition会帮你把这个变化变成一个持续时间300ms的动画,这个动画的速度曲线是ease-in-out,并且会有1s的延迟,也就变化的1s后开始执行动画。

理解了transition是什么之后,现在有两个问题:

  1. 有哪些属性可以transition?
  2. 怎么触发transition?

问题一:有哪些属性可以transition?

这里查看完整列表
其实很简单,概括的说,只有两类属性是适合(并且可以)transition的:transformopacity,其中transform又分为三种类型

Transform属性

  • translate ,位移。
    比如transform: translateY(15px) 就是在y轴方向往下移动15px。

  • scale,放大缩小
    比如transform: scale(1.2) 就是讲元素放大1.2倍

  • rotation,旋转
    比如 transform: rotate(5deg) 元素顺时针旋转15度

问题2:如何触发一个transition?


常见方法也只有两种:

  1. hover之类的伪类
  2. 通过class的改变

🌰1 通过hover伪类触发动画

<div class="trigger">
  <div class="box"></div>
</div>
.trigger {
  width: 200px;
  height: 200px;
  background: #ddd;
  border: 20px solid #999;
}

.box {
  display: inline-block;
  background: pink;
  width: 200px;
  height: 200px;
  transition: transform 300ms ease-in-out;
  pointer-events: none;
}

.trigger:hover .box {
  transform: translate(200px, 150px) rotate(20deg);
}

transition2.gif

transition属性总是待在会发生变化的元素里等待某个属性变化的来临。什么时候来临呢?这就需要一个trigger的时机,在上面这个例子中就是当box的父元素.trigger:hover的时候。

注意其中 pointer-events这个属性,如果不添加这一个属性,当hover box的时候,也会触发这个transform。

🌰🌰 2 通过添加class触发动画

添加一点js

$('.trigger').on('click',function(){
  $(this).toggleClass('clicked');
});

再改变一下css

.trigger.clicked .box {
  transform: translate(200px, 150px) rotate(20deg);
}

这样就是通过改变class来触发transition的动画,当.trigger被点击的时候,给.box一个class:clicked,这个新的class会让box的transform属性发生变化,从而触发动画。

*小技巧:在chrome里面还能直接查看速度动画哦!在chrome里面找到合适的动画曲线,还能直接复制bezier(贝塞尔)曲线到css里面,非常方便。

Screen Shot 2017-04-22 at 5.06.15 PM.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,099评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,473评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,229评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,570评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,427评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,335评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,737评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,392评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,693评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,730评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,512评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,349评论 3 314
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,750评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,017评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,290评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,706评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,904评论 2 335

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,723评论 0 2
  • W3C标准中对css3的transition这是样描述的:“css的transition允许css的属性值在一定的...
    青春前行阅读 1,388评论 0 5
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,299评论 0 11
  • 一、HTML5 1.1 认识HTML5 HTML5并不仅仅只是作为HTML标记语言的一个最新版本,更重要的是它制定...
    福尔摩鸡阅读 15,718评论 14 51
  • 一 也许并没有那么多选择。 当你看着他一步步走来,镜头一点点拉近,场景恍如当时任一日的校道。时光仿佛被拦腰砍断落地...
    散淡度日黄小洛阅读 311评论 0 0