在前面的文章中也有介绍过css3动画的内容,可见《关于transition和animation》和《webkitAnimationEnd动画事件》,今天又要唠叨一下这个东西了,随着知道的越多,然后就会发现自己还有更多的不知道。

今天主要说的是利用animate制作帧动画。

我们常见的loading效果,很多的动画效果并不是连续运动,而是一种逐帧运动的感觉。

看一个简单的需要制作动画效果的图片:

甚至就包括我们在这里写博客上传图片,等待上传这个过程中的loading动画,明显的效果是不能连续转动,不然总感觉傻傻的,最开始我也做了一个傻傻的连续旋转的动画,不知道怎么上传这种效果,没法只管的演示,我把所有代码全都贴上自己可以观察一下。

<div class="loading"></div>
.loading{
width: 1.12rem;
height: 1.12rem;
position: absolute;
left: 50%;
margin-left: -0.56rem;
top: 35%;
z-index: 2;
background: url(../images/loading.png) no-repeat center center;
background-size: contain;
-webkit-animation: rorates 4s infinite linear;
animation: rorates 4s infinite linear;
}
@-webkit-keyframes rorates {
0% {
transform: rotate(0deg);
}
100%{
transform: rotate(360deg);
}
}
@keyframes rorates {
0% {
transform: rotate(0deg);
}
100%{
transform: rotate(360deg);
}
}

所引用的图片,就是前面上传的那张,大家可以看一下,连续旋转,真的没有任何的美感可言。这时候,我就想到了逐帧动画的解决方法。

其实,逐帧动画的关键点在于我们常用的控制动画的速度曲线的属性animation-timing-function,该属性我们比较熟悉的值基本上属于一下这些值:

其中三次贝塞尔曲线cubic-bezier(n,n,n,n),我不知道有多少人能够熟练使用,我是从来没使用过,在我的项目中,前面几种动画曲线已经够用了。

事实上,在这个动画曲线上,还应该有一个值,就是steps(step-start, step-end)函数,他有两个参数,step-start其实就是你指定的步进数量,steps()会根据你指定的步进数量,把整个动画切分为step-start帧,并且整个动画会在帧与帧之间硬切。而step-end用于指定动画在每个周期的什么位置发生帧的切换动作,但实际上并没有多大卵用,或者说就我而言,没发现他有多少实际用处吧!

上面的css动画稍作修改,就能实现我们需要的逐帧动画:

.loading{
width: 1.12rem;
height: 1.12rem;
position: absolute;
left: 50%;
margin-left: -0.56rem;
top: 35%;
z-index: 2;
background: url(../images/loading.png) no-repeat center center;
background-size: contain;
-webkit-animation: rorates 4s infinite steps(8);
animation: rorates 4s infinite steps(8);
}
@-webkit-keyframes rorates {
0% {
transform: rotate(0deg);
}
100%{
transform: rotate(360deg);
}
}
@keyframes rorates {
0% {
transform: rotate(0deg);
}
100%{
transform: rotate(360deg);
}
}

  这么再看起来,明显好很多了

CSS3帧动画的更多相关文章

  1. Css3帧动画深入探寻,讲点项目中实际会碰到的问题

    先加个副标题XD --如何解决background-size为100%下处理@keyframes 正是在项目中遇到副标题,才引起我更深入的探寻 先略带一下基本的css3动画 css3的动画实现是通过属 ...

  2. 3d图片切换(css3帧动画)

    效果带抖动翻转隐藏,使用帧动画 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...

  3. css3的帧动画

    概述 前几天刚好看到一个用了CSS3帧动画的页面,对它非常感兴趣,就研究了一下,记录在下面,供以后开发时参考,相信对其他人也有用. PS:以后别人问我用过什么CSS3属性的时候,我也可以不用说常见的a ...

  4. css3 animation动画技巧

    一,css3 animation动画前言 随着现在浏览器对css3的兼容性越来越好,使用css3动画来制作动画的例子也越来越广泛,也随着而来带来了许多的问题值得我们能思考.css3动画如何让物体运动更 ...

  5. 深入理解CSS3 Animation 帧动画

    CSS3我在5年之前就有用了,包括公司项目都一直在很前沿的技术. 最近在写慕课网的七夕主题,用了大量的CSS3动画,但是真的沉淀下来仔细的去深入CSS3动画的各个属性发现还是很深的,这里就写下关于帧动 ...

  6. css3 实现逐帧动画

    css3 实现逐帧动画 实现逐帧动画需要使用到的是Animation动画,该CSS3的Animation有八个属性:分别是如下:1: animation-name2: animation-durati ...

  7. 深入理解CSS3 Animation 帧动画 ( steps )

    作者:Aaron的博客 网址:http://www.cnblogs.com/aaronjs/p/4642015.html --------------------------------------- ...

  8. css3 animation实现逐帧动画

    css3里面的animation属性非常强大,但是自己用的比较少,最近有次面试就刚好被问到了,趁现在有时间就对animation做一个小总结.同时实现一个逐帧动画的demo作为练习 animation ...

  9. 深入理解CSS3 Animation 帧动画(转)

    CSS3我在5年之前就有用了,包括公司项目都一直在很前沿的技术. 最近在写慕课网的七夕主题,用了大量的CSS3动画,但是真的沉淀下来仔细的去深入CSS3动画的各个属性发现还是很深的,这里就写下关于帧动 ...

随机推荐

  1. ASP.NET AJAX入门系列(2):使用ScriptManager控件

    ScriptManager控件包括在ASP.NET 2.0 AJAX Extensions中,它用来处理页面上的所有组件以及页面局部更新,生成相关的客户端代理脚本以便能够在JavaScript中访问W ...

  2. Redis select选择数据库

    Redis的功能真是强大,可以做数据库,可以做缓存. 今天发现Redis支持分隔操作空间,使得空间与空间之间互不影响. SELECT index 切换到指定的数据库,数据库索引号 index 用数字值 ...

  3. 菜鸟如何使用hanlp做分词的过程记录

    菜鸟如何使用hanlp做分词的过程记录 最近在学习hanlp的内容,准备在节后看看有没有时间整理一波hanlp分享下,应该还是会像之前分享DKHadoop一样的方式吧.把整个学习的过程中截图在配文字的 ...

  4. 基于tornado的文件上传demo

    这里,web框架是tornado的4.0版本,文件上传组件,是用的bootstrap-fileinput. 这个小demo,是给合作伙伴提供的,模拟APP上摄像头拍照,上传给后台服务进行图像识别用,识 ...

  5. 阅读<Video Test Pattern Generator v7.0>笔记

    阅读<Video Test Pattern Generator v7.0>笔记 1.数据宽度的问题 TotalDataWidth的计算公式: 疑问:为什么TotalDataWidth后面需 ...

  6. sort a given string

    my solution: function order(words){ var splitToArr = words.split(' '), len = splitToArr.length, newA ...

  7. sublime text2+Ctags+Cscope替代Source Insight

    说明:以Windows系统下查看C++代码为例.因为Source Insight(以下简称SI)是收费软件,且界面丑陋,所以考虑其替代方案,发现Sublime Text3(以下简称ST3) + Cta ...

  8. 坑人的 Javascript 模块化编程 sea.js

    坑人的 Javascript 模块化编程 sea.js 忧伤 加 蛋疼的 开始了 看文档 Sea.js 进行配置 seajs.config({ // 设置路径,方便跨目录调用 paths: { 'ar ...

  9. C# winForm中调用javascript文件中的方法

    目前有很多的SNS社区或类SNS的网站,例如开心.51.校内等,但是发现大多数社区在邀请好友的时候都没有提供对QQ邮箱或者QQ空间好友列表获取的功能,不过似乎海内支持,但是网上相关QQ的文章还不是很多 ...

  10. 解决MSDE安装回滚的问题

    rem 解决MSDE安装回滚的问题.bat rem 设置为手动rem sc config "LanmanServer" start= DEMAND rem 设置为自动sc conf ...