有很多不怎么用css3写动画的同学经常会对其中css3的transform,transition,translate,animation,@keyframes等等动画属性混淆错乱,经常使用了发现没有效果,其实都是属性用错了。
今天用几个简单的例子做一下区分;

一 利用translate 与transition结合起来的动画;

1 transition

用来描述动画过程和时间

transition: property duration timing-function delay;

transform:
用来描述动画动作和形式

transform:translate /scale /rotate/ skew /perspective ;
因为经常用到的属性也就只有translate,所以经常将transform和translate搞混;变成 translate:transform;

例如:通常描述一个简单的动画,例如渐隐渐现

div{
width:100px;
height:100px;
background:#ececec;
opacity:0;
}

.opacity-hide{
opacity:0;
transition:opacity 0.5s ease-out;
}

.opacity-show{
opacity:1;
transition:opacity 0.5s ease-out;
}

鼠标点击时动画就是:$('div').addClass('opacity-show');

setTimeout(function(time) {
$('div').addClass('opacity-hide').removeClass('opacity-show');
}, time ? time : 1500)

这里有个基础的小注意点:

opacity:1;就是显示。opacity:0;就是隐藏。
addClass,removeClass,toggleClass 是不需要加入“.”号的!

二 利用animation的动画

animation:name duration timing-function delay iteration-count direction;

1 name:就算是用@keyframes写个动画名,这个opacitykey就是动画名。

/*@keyframes opacitykey{
0% {opacity: 0}
25% {opacity: 1}
50% {opacity: 1}
75% {opacity: 1}
100% {opacity: 0}
}
2 百分比用来控制时间分布的,就是用duration,如果是2s就是按照这个比例分下去。

3 timing-function(速度曲线):linear/ease/ease-in/ease-out/ease-in-out/cubic-bezier(n,n,n,n);

4 delay:延迟多少时间执行;

5 iteration-count(动画播放的次数):n|infinite;

6 direction:normal|alternate(动画轮流反向播放)这个属性一般很少用

例如我写一个例如渐现渐隐动画,持续时间2s 推迟0.5s执行,并且不断执行;
.opacity-infinite {
animation:opacitykey 2s ease-out 0.5s infinite ;
-webkit-animation:opacitykey 2s ease-out 0.5s infinite ;
}
我们把它放进.opacity-infinite这个类里,这样用这个动画就很方便了;

三 jq动画用的是animate(),比较灵活 duration单位是毫秒

$('div').animate({
width:130,
height:253,
opacity:0
},{
duration:1500,
easing:'swing',
complete: callback
});

也可以特殊化制定
$('div').animate({
left: [500, 'swing'],
top: [200, 'easeOutBounce']
});

如果需要更多的动画效果可以引入Jquery.easing的插件

当然还有其他动画形式,列出上面几种是因为,很多情况下参数的属性都容易混淆,把他们做一下简单的分类,
如果你是在移动端的话建议css3的动画执行效果要好与jq动画和原生动画,尤其是渐隐渐现这一类的效果。

css动画和jq动画的简单区分的更多相关文章

  1. 【动画消消乐】HTML+CSS 自定义加载动画:清新折叠方块效果 063(附源码及原理详解)

    前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出- 自我介绍ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专 ...

  2. CSS 3学习——animation动画

    以下内容根据官方文档翻译以及自己的理解整理. 1.  介绍 本方案介绍动画(animations).通过动画,开发者可以将CSS属性值的变化指定为一个随时间变化的关键帧(keyframes)的集合.在 ...

  3. 【CSS】过渡、动画和变换

    1. 使用过渡 过渡效果一般是由浏览器直接改变元素的CSS属性实现的.例如,如果使用:hover选择器,一旦用户将鼠标悬停在元素之上,浏览器就会应用跟选择器关联的属性. <!DOCTYPE ht ...

  4. css动画与js动画的区别

    CSS动画 优点: (1)浏览器可以对动画进行优化.   1. 浏览器使用与 requestAnimationFrame 类似的机制,requestAnimationFrame比起setTimeout ...

  5. CSS 实现加载动画之七-彩环旋转

    今天整理的这个动画估计大家都不会陌生,彩环旋转,看过之后是不是觉得很熟悉,对,这个就是优酷视频APP里面的加载动画.本人空余时间喜欢看些视频,留意到这个动画后就想用代码实现出来,今天整理了下,跟大家分 ...

  6. CSS 实现加载动画之六-大风车

    这个动画改编自光盘旋转,前几个步骤一样,最后一步不同.光盘旋转的最后一步是外层容器加个圆形的白色边框,多余部分隐藏,这个案例则是在每个旋转的子元素的顶部或底部增加一个三角形的元素,构成风车旋转的角. ...

  7. CSS 实现加载动画之五-光盘旋转

    今天做的这个动画叫光盘旋转,名字自己取的.动画的效果估计很多人都很熟悉,就是微信朋友圈里的加载动画.做过前面几个动画,发现其实都一个原理,就是如何将动画的元素如何分离出来.这个动画的实现也很简单,关键 ...

  8. CSS 实现加载动画之三-钢琴按键

    今天做的这个动画实现也是非常简单,简单数几行代码就可以搞定.给这个动画取了个优雅的名字--钢琴按键,也实在是想不出什么更形象的名字了.废话不多说,直接上图. 1. 先看gif图 2. 代码实现思路 2 ...

  9. CSS 实现加载动画之一-菊花旋转

    最近打算整理几个动画样式,最常见的就是我们用到的加载动画.加载动画的效果处理的好,会给页面带来画龙点睛的作用,而使用户愿意去等待.而页面中最常用的做法是把动画做成gif格式,当做背景图或是img标签来 ...

随机推荐

  1. JIRA Rest JAVA Client API实现问题管理及自定义字段(原创)

    JIRA是一个缺陷跟踪管理系统,被广泛应用于缺陷跟踪.客户服务.需求收集.流程审批.任务跟踪.项目跟踪和敏捷管理等工作领域,当我们需要把第三方业务系统集成进来时,可以调用他的API. JIRA本身的A ...

  2. iOS-实现对象拷贝【对象拷贝】

    对象引用 NSCopying 代理 .h @interface xk : NSObject <NSCopying> @property (nonatomic, copy) NSString ...

  3. 【bzoj5180】[Baltic2016]Cities 斯坦纳树

    这题一看显然是一个裸的斯坦纳树 我们用$f[i][j]$表示经过的路径中包含了状态$i$所表示的点,且连接了$j$号点的最短路径. 显然,$f[i][j]=min\{f[i$^$k][j]+f[k][ ...

  4. WebDriverAPI(5)

    将当前浏览器截屏 测试网址 http://www.baidu.com Java语言版本实例 @Test public void captureScreenInCurrentWindows() { dr ...

  5. aspectj

    http://stackoverflow.com/questions/25209339/spring-aspectj-weaving-for-java-8-using-aspectj-maven-pl ...

  6. (转)python高级:列表解析和生成表达式

    一.语法糖的概念 “糖”,可以理解为简单.简洁,“语法糖”使我们可以更加简洁.快速的实现这些功能. 只是Python解释器会把这些特定格式的语法翻译成原本那样复杂的代码逻辑 我们使用的语法糖有: if ...

  7. 【Java并发编程】:深入Java内存模型——happen-before规则及其对DCL的分析

    happen—before规则介绍 Java语言中有一个“先行发生”(happen—before)的规则,它是Java内存模型中定义的两项操作之间的偏序关系,如果操作A先行发生于操作B,其意思就是说, ...

  8. Android硬件抽象层(HAL)深入剖析(一)【转】

    作为一个搞android驱动或者说搞底层的人,我觉得对于hal那是必须要掌握的,而且必须达到一定深度,于是我总结了一下,将整个自己的分析思路写下来. 主要是看android源代码,根据源代码得到的思路 ...

  9. web前端html快速入门

    HTML 学前端之间不得不知道一个网站:http://www.w3school.com.cn/ 网上有很多教程关于前端的,写的特别详细,也写的特别好.我们应该要自已理解,一些相应的前端的知识,不能只是 ...

  10. 查看本机的ip

    1.Windows 1.1.查看ip地址 ipconfig 1.2.查看MAC地址 ipconfig /all 2.Linux 2.1.查看ip地址 ifconfig 2.2.查看MAC地址 ip l ...