stylie工具轻松搞定css3抛物线动画
自从CSS3引入了动画(transition和@keyframes,还有与之搭配的transform)之后,写动画也变的越来多越来越容易。
可是当我们遇到需要利用数学公式的复杂动画时,却一筹莫展,只能怪小时候数学没学好(可能是语文老师教的)。那么问题来了,但我拿到要实现这样的需求,该如何:
可能我们会去苦恼,加班熬夜的去补功课去解决,可是这样真的很费劲,那么,我们就来分析一下如何,快速解决
要想做出这样的动画,我们必先知道其运动的原理,不是吗,鉴于抛物线太多了,这里只对最简单的匀变速曲线运动做分享,看图:
好不容易找到了一张小图,是不是有点读高中物理课的感觉
运动原理可以分解为:水平方向匀速运动,垂直方向重力加速度运动
位移途径为: 1. (水平)s = vt 2.(垂直)h = gt*t/2
假如我们已起抛点为原点,就可以根据运行时间,计算出,物体x轴、y轴运行的距离,通过细时间间隔,利用css3属性tanslate3d(x,y,z)进行精细的位移,那么我们就能形成抛物线运动了, 那么我们试验一下。
代码块
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>抛物线</title>
<style>
body{background: #8fd5d5;} /******抛物线******/
.ball{
width:20px;
height:20px;
background:yellow;
-webkit-border-radius:%;
-moz-border-radius:%;
border-radius:%;
cursor:pointer
}
/********水平移动距离600 速度 200m/s 重力加速度的运动速度**************/
.tab span{
display:inline-block;
padding:10px;
color:#fff;
border:2px solid #59AEAE;
}
.animg{-webkit-animation:pao 3s linear both;}
.animg50{-webkit-animation:pao50 3s linear both;}
.animg100{-webkit-animation:pao100 3s linear both;}
@-webkit-keyframes pao{
%{-webkit-transform:translate3d(0px,,)}
%{-webkit-transform:translate3d(60px,.45px,)}
%{-webkit-transform:translate3d(120px,.8px,)}
%{-webkit-transform:translate3d(180px,.05px,)}
%{-webkit-transform:translate3d(240px,.2px,)}
%{-webkit-transform:translate3d(300px,.25px,)}
%{-webkit-transform:translate3d(360px,.2px,)}
%{-webkit-transform:translate3d(420px,.05px,)}
%{-webkit-transform:translate3d(480px,.8px,)}
%{-webkit-transform:translate3d(540px,36.45,)}
%{-webkit-transform:translate3d(600px,45px,)}
}
@-webkit-keyframes pao50{
%{-webkit-transform:translate3d(0px,,)}
%{-webkit-transform:translate3d(60px,.25px,)}
%{-webkit-transform:translate3d(120px,9px,)}
%{-webkit-transform:translate3d(180px,.25px,)}
%{-webkit-transform:translate3d(240px,36px,)}
%{-webkit-transform:translate3d(300px,.25px,)}
%{-webkit-transform:translate3d(360px,81px,)}
%{-webkit-transform:translate3d(420px,.25px,)}
%{-webkit-transform:translate3d(480px,144px,)}
%{-webkit-transform:translate3d(540px,182.25,)}
%{-webkit-transform:translate3d(600px,225px,)}
}
@-webkit-keyframes pao100{
%{-webkit-transform:translate3d(0px,,)}
%{-webkit-transform:translate3d(60px,.5px,)}
%{-webkit-transform:translate3d(120px,18px,)}
%{-webkit-transform:translate3d(180px,.5px,)}
%{-webkit-transform:translate3d(240px,72px,)}
%{-webkit-transform:translate3d(300px,.5px,)}
%{-webkit-transform:translate3d(360px,162px,)}
%{-webkit-transform:translate3d(420px,.5px,)}
%{-webkit-transform:translate3d(480px,288px,)}
%{-webkit-transform:translate3d(540px,364.5,)}
%{-webkit-transform:translate3d(600px,450px,)}
} .margin{margin-top:450px}
</style>
</head>
<body>
<h2>抛物线运动曲线 水平移动距离600px 速度 200px/s 默认垂直方向为重力加速度</h2>
<div class="tab">
<span class="sg">垂直方向重力加速度</span>
<span class="sg50">垂直方向50px/s</span>
<span class="sg100">垂直方向100px/s</span>
</div>
<div class="ball sg"></div> <script type="text/javascript">
document.querySelector(".sg").onclick =function(){ document.querySelector(".ball").className = "ball animg"}
document.querySelector(".sg50").onclick =function(){ document.querySelector(".ball").className = "ball animg50"}
document.querySelector(".sg100").onclick =function(){ document.querySelector(".ball").className = "ball animg100"}
</script>
</body>
</html>
在演示效果中,我们发现,水平方向匀速运动一定,垂直方向的加速度越大时,所细分的做出的动画抛物线效果越不好,得出结论就是我们为了保持更好的抛物线效 果,时间比例细分越小,移动的距离越精细,抛物线效果动画越好。可是,问题来了,为了做精细的抛物动画,给我们带来的问题,就是要花更多的时间去计算精细 的值,可这非常需要时间……
为了更好的解决以上的这个问题,分享一款更好用的动画神器—Stylie 用户界面简洁大方,使用简单
页面打开以后很简单,蓝色的网格背景上面,两个绿色的十字中间连着一根黄色的线,上面有一个白色小球不断地从左边滑动到右边(还称不上滚动),下面有一个进度条,右边有一个操作面板。
Keyframes标签设置面板:
1.第一个0ms处表示起点相关信息,第二个2000ms处表示2000ms处断点的相关信息;
2.第一个0ms处表示起点相关信息,第二个2000ms处表示2000ms处断点的相关信息;
3.X和Y分别表示横坐标及纵坐标(其实你也可以用鼠标去拖绿色的十字…);
4.S表示缩放倍率(默认是1);
5.rX、rY、rZ分别表示物体沿X、Y、Z轴的旋转角度(具体哪个轴是哪个可以在上面填写数字自己尝试,出于便于观察的理由建议填写180。当然你也可以按住Shift键,拖,但是我觉得这样很不好控制…);
6.linear表示线性的…这一栏是自定义缓动曲线(Easing curves)
Motion是自定义缓动曲线运动轨迹,可以在Keyframes选择里面添加你自定义的运动轨迹。
我觉得这个神器最牛逼的功能在于,缓动曲线功能所有的数值,都!可!以!定义缓动,让我们轻松完成抛物线运动动画。
stylie工具轻松搞定css3抛物线动画的更多相关文章
- 【转】轻松搞定FTP之FlashFxp全攻略
转载网址:http://www.newhua.com/2008/0603/39163.shtml 轻松搞定FTP之FlashFxp全攻略 导读: FlashFXP是一款功能强大的FXP/FTP软件,融 ...
- Webcast / 技术小视频制作方法——自己动手录制video轻松搞定
Webcast / 技术小视频制作方法——自己动手录制video轻松搞定 http://blog.sina.com.cn/s/blog_67d387490100wdnh.html 最近申请加入MSP的 ...
- 【微服务】之三:从零开始,轻松搞定SpringCloud微服务-配置中心
在整个微服务体系中,除了注册中心具有非常重要的意义之外,还有一个注册中心.注册中心作为管理在整个项目群的配置文件及动态参数的重要载体服务.Spring Cloud体系的子项目中,Spring Clou ...
- 【微服务】之四:轻松搞定SpringCloud微服务-负载均衡Ribbon
对于任何一个高可用高负载的系统来说,负载均衡是一个必不可少的名称.在大型分布式计算体系中,某个服务在单例的情况下,很难应对各种突发情况.因此,负载均衡是为了让系统在性能出现瓶颈或者其中一些出现状态下可 ...
- PDF怎么旋转页面,只需几步轻松搞定!
有时候我们下载一个PDF文件里面有页面是旋转的情况,用手机看的时候可以把手机旋转过来看,那么用电脑的时候总不可能也转过来看吧,笔记本是可以的台式的是不行的,这个时候我们就需要把PDF文件中旋转的页面转 ...
- 轻松搞定RabbitMQ(六)——主题
转自 http://blog.csdn.net/xiaoxian8023/article/details/48806871 翻译地址:http://www.rabbitmq.com/tutorials ...
- 基于 CODING 轻松搞定持续集成
点击观看视频教程 带你一步一步搞定 CODING 持续集成 持续集成加速软件交付 持续集成这个概念是由 Grady Booch 在 1991 年首次提出,随后成为了 DevOps 的核心实践之一.持续 ...
- 春节过后就是金三银四求职季,分享几个Java面试妙招,轻松搞定HR!
春节过后就是金三银四,分享几个Java面试妙招,轻松搞定HR! 2020年了,先祝大家新年快乐! 今年IT职位依然相当热门,特别是Java开发岗位.软件开发人才在今年将有大量的就业机会.春节过后,金三 ...
- 盘它!基于CANN的辅助驾驶AI实战案例,轻松搞定车辆检测和车距计算!
摘要:基于昇腾AI异构计算架构CANN(Compute Architecture for Neural Networks)的简易版辅助驾驶AI应用,具备车辆检测.车距计算等基本功能,作为辅助驾驶入门级 ...
随机推荐
- 【ES】简单使用
import sys reload(sys) sys.setdefaultencoding('utf-8') from datetime import datetime from elasticsea ...
- Kafka配置说明
Broker Configs Property Default Description broker.id 每个broker都可以用一个唯一的非负整数id进行标识:这个id可以作为broker的 ...
- Java 11正式发布,这几个逆天新特性教你写出更牛逼的代码
就在前段时间,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可在生产环境中使用! 这无疑对我们来说是一大好的消息.作为一名java开发者来说,虽然又要去学习和了解java11 ...
- extJS 中 ext.data 介绍
ext.data 最主要的功能是获取和组织数据结构,并和特定控件联系起来,于是,Ext.data成了数据的来源,负责显示数据. Ext.data在命名空间中定义了一系列store.reader和pro ...
- ios Develop mark
App Distribution Guidehttps://developer.apple.com/library/ios/documaentation/IDEs/Conceptual/AppDist ...
- 配置caffe过程中,生成解决方案出错。无法打开包括文件: “gpu/mxGPUArray.h”
------ 已启动生成: 项目: matcaffe, 配置: Release x64 ------12> MatlabPreBuild.cmd : Create output director ...
- multiselect2side:jQuery多选列表框插件
http://blog.csdn.net/rosanu_blog/article/details/8550723 http://www.bkjia.com/jQuery/449193.html < ...
- YII创建应用
创建第一个应用 打开cmd,切换到appserv的www目录下,输入: D:\AppServ\www>yii6\framework\yiic webapp D:wamp\www\mydemos
- war内部结构
war index.html(非必须) WEB-INF classes (java编译之后的class文件) lib(jar文件) web.xml(war包描述文件) subdirectories[可 ...
- [AX]AX2012 R2 HR Jobs, Positions, Department和Workers
部门.作业(Job的官方翻译)和位置(Position的官方翻译)是AX人力资源管理的基本组织元素,Job和Position在AX有的地方又称作工作和职位,其实这个翻译更为恰当. Job定义的是一个工 ...