js缓动函数
- tween: {
- easeInQuad: function(pos){
- return Math.pow(pos, 2);
- },
- easeOutQuad: function(pos){
- return -(Math.pow((pos-1), 2) -1);
- },
- easeInOutQuad: function(pos){
- if ((pos/=0.5) < 1) return 0.5*Math.pow(pos,2);
- return -0.5 * ((pos-=2)*pos - 2);
- },
- easeInCubic: function(pos){
- return Math.pow(pos, 3);
- },
- easeOutCubic: function(pos){
- return (Math.pow((pos-1), 3) +1);
- },
- easeInOutCubic: function(pos){
- if ((pos/=0.5) < 1) return 0.5*Math.pow(pos,3);
- return 0.5 * (Math.pow((pos-2),3) + 2);
- },
- easeInQuart: function(pos){
- return Math.pow(pos, 4);
- },
- easeOutQuart: function(pos){
- return -(Math.pow((pos-1), 4) -1)
- },
- easeInOutQuart: function(pos){
- if ((pos/=0.5) < 1) return 0.5*Math.pow(pos,4);
- return -0.5 * ((pos-=2)*Math.pow(pos,3) - 2);
- },
- easeInQuint: function(pos){
- return Math.pow(pos, 5);
- },
- easeOutQuint: function(pos){
- return (Math.pow((pos-1), 5) +1);
- },
- easeInOutQuint: function(pos){
- if ((pos/=0.5) < 1) return 0.5*Math.pow(pos,5);
- return 0.5 * (Math.pow((pos-2),5) + 2);
- },
- easeInSine: function(pos){
- return -Math.cos(pos * (Math.PI/2)) + 1;
- },
- easeOutSine: function(pos){
- return Math.sin(pos * (Math.PI/2));
- },
- easeInOutSine: function(pos){
- return (-.5 * (Math.cos(Math.PI*pos) -1));
- },
- easeInExpo: function(pos){
- return (pos==0) ? 0 : Math.pow(2, 10 * (pos - 1));
- },
- easeOutExpo: function(pos){
- return (pos==1) ? 1 : -Math.pow(2, -10 * pos) + 1;
- },
- easeInOutExpo: function(pos){
- if(pos==0) return 0;
- if(pos==1) return 1;
- if((pos/=0.5) < 1) return 0.5 * Math.pow(2,10 * (pos-1));
- return 0.5 * (-Math.pow(2, -10 * --pos) + 2);
- },
- easeInCirc: function(pos){
- return -(Math.sqrt(1 - (pos*pos)) - 1);
- },
- easeOutCirc: function(pos){
- return Math.sqrt(1 - Math.pow((pos-1), 2))
- },
- easeInOutCirc: function(pos){
- if((pos/=0.5) < 1) return -0.5 * (Math.sqrt(1 - pos*pos) - 1);
- return 0.5 * (Math.sqrt(1 - (pos-=2)*pos) + 1);
- },
- easeOutBounce: function(pos){
- if ((pos) < (1/2.75)) {
- return (7.5625*pos*pos);
- } else if (pos < (2/2.75)) {
- return (7.5625*(pos-=(1.5/2.75))*pos + .75);
- } else if (pos < (2.5/2.75)) {
- return (7.5625*(pos-=(2.25/2.75))*pos + .9375);
- } else {
- return (7.5625*(pos-=(2.625/2.75))*pos + .984375);
- }
- },
- easeInBack: function(pos){
- var s = 1.70158;
- return (pos)*pos*((s+1)*pos - s);
- },
- easeOutBack: function(pos){
- var s = 1.70158;
- return (pos=pos-1)*pos*((s+1)*pos + s) + 1;
- },
- easeInOutBack: function(pos){
- var s = 1.70158;
- if((pos/=0.5) < 1) return 0.5*(pos*pos*(((s*=(1.525))+1)*pos -s));
- return 0.5*((pos-=2)*pos*(((s*=(1.525))+1)*pos +s) +2);
- },
- elastic: function(pos) {
- return -1 * Math.pow(4,-8*pos) * Math.sin((pos*6-1)*(2*Math.PI)/2) + 1;
- },
- swingFromTo: function(pos) {
- var s = 1.70158;
- return ((pos/=0.5) < 1) ? 0.5*(pos*pos*(((s*=(1.525))+1)*pos - s)) :
- 0.5*((pos-=2)*pos*(((s*=(1.525))+1)*pos + s) + 2);
- },
- swingFrom: function(pos) {
- var s = 1.70158;
- return pos*pos*((s+1)*pos - s);
- },
- swingTo: function(pos) {
- var s = 1.70158;
- return (pos-=1)*pos*((s+1)*pos + s) + 1;
- },
- bounce: function(pos) {
- if (pos < (1/2.75)) {
- return (7.5625*pos*pos);
- } else if (pos < (2/2.75)) {
- return (7.5625*(pos-=(1.5/2.75))*pos + .75);
- } else if (pos < (2.5/2.75)) {
- return (7.5625*(pos-=(2.25/2.75))*pos + .9375);
- } else {
- return (7.5625*(pos-=(2.625/2.75))*pos + .984375);
- }
- },
- bouncePast: function(pos) {
- if (pos < (1/2.75)) {
- return (7.5625*pos*pos);
- } else if (pos < (2/2.75)) {
- return 2 - (7.5625*(pos-=(1.5/2.75))*pos + .75);
- } else if (pos < (2.5/2.75)) {
- return 2 - (7.5625*(pos-=(2.25/2.75))*pos + .9375);
- } else {
- return 2 - (7.5625*(pos-=(2.625/2.75))*pos + .984375);
- }
- },
- easeFromTo: function(pos) {
- if ((pos/=0.5) < 1) return 0.5*Math.pow(pos,4);
- return -0.5 * ((pos-=2)*Math.pow(pos,3) - 2);
- },
- easeFrom: function(pos) {
- return Math.pow(pos,4);
- },
- easeTo: function(pos) {
- return Math.pow(pos,0.25);
- },
- linear: function(pos) {
- return pos
- },
- sinusoidal: function(pos) {
- return (-Math.cos(pos*Math.PI)/2) + 0.5;
- },
- reverse: function(pos) {
- return 1 - pos;
- },
- mirror: function(pos, transition) {
- transition = transition || tween.sinusoidal;
- if(pos<0.5)
- return transition(pos*2);
- else
- return transition(1-(pos-0.5)*2);
- },
- flicker: function(pos) {
- var pos = pos + (Math.random()-0.5)/5;
- return tween.sinusoidal(pos < 0 ? 0 : pos > 1 ? 1 : pos);
- },
- wobble: function(pos) {
- return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;
- },
- pulse: function(pos, pulses) {
- return (-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2) + .5;
- },
- blink: function(pos, blinks) {
- return Math.round(pos*(blinks||5)) % 2;
- },
- spring: function(pos) {
- return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6));
- },
- none: function(pos){
- return 0
- },
- full: function(pos){
- return 1
- }
- }
js缓动函数的更多相关文章
- JS —— 轮播图中的缓动函数的封装
轮播图的根本其实就是缓动函数的封装,如果说轮播图是一辆跑动的汽车,那么缓动函数就是它的发动机,今天本文章就带大家由简入繁,封装属于自己的缓动函数~~ 我们从需求的角度开始,首先给出一个简单需求: 1. ...
- GSAP JS基础教程--使用缓动函数
今天来了解一下缓动easeing函数. 开始,如果你还没有GSAP的类包,可以到GreenSock的官网去下载最新版本的类包,或者直接点击这里来下载 学习之前,先来准备一下: <!DO ...
- JS动画之缓动函数分析及动画库
上一篇讲了JS动画定时器相关知识,这一篇介绍下缓动函数及流行的动画库. 熟悉的图 实际使用 jquery animate()+jquery.easing插件的使用: $(selector).anima ...
- tween.js缓动(补间动画)
一.理解tween.js 如果看到上面的已经理解了,可以跳过下面的部分.下面为对Tween.js的解释 下面就介绍如何使用这个Tween了,首先b.c.d三个参数(即初始值,变化量,持续时间)在缓动开 ...
- NGUI缓动函数
缓动函数:http://easings.net/zh-cn 研究NGUI的博客:http://dsqiu.iteye.com/category/295721
- iOS基本动画/关键帧动画/利用缓动函数实现物理动画效果
先说下基本动画部分 基本动画部分比较简单, 但能实现的动画效果也很局限 使用方法大致为: #1. 创建原始UI或者画面 #2. 创建CABasicAnimation实例, 并设置keypart/dur ...
- Silverlight动画学习笔记(三):缓动函数
(一)定义: 缓动函数:可以将自定义算术公式应用于动画 (二)为什么要用缓动函数: 您可能希望某一对象逼真地弹回或其行为像弹簧一样.您可以使用关键帧动画甚至 From/To/By 动画来大致模拟这些效 ...
- EaseType 缓动函数
EaseType(动画曲线) EaseType 缓动函数或者我习惯叫它动画曲线,在很多的软件或动画中都有涉及到,下面是摘取的一些资料: 缓函数图例 Tween效果 每一幅图像当鼠标移上去,会有路径效果 ...
- 支持xcode6的缓动函数Easing以及使用示例
支持xcode6的缓动函数Easing以及使用示例 用xcode6新建工程后,直接导致不支持之前的Easing缓动函数的代码,经过修改后就可以正常使用了,虽然比不上POP高大上的动画,但用缓动函数的动 ...
随机推荐
- C# Page基础功能,用于各页面继承
IBasePage.cs文件 /// <summary> /// 用于页面或用户控件 /// </summary> public interface IBasePage { / ...
- ThinkPHP开发笔记-前后端数据交互
此处就是 Controller 和 View 相互传数据. 1.Controller 向 View 的页面传数据.在控制器中把变量传递给模板,使用 assign 方法对模板变量赋值.例如: 在Cont ...
- 基于cornerstone.js的cornerstoneWADOImageLoader
上一篇简单介绍了cornerstone.js的相关使用介绍和基于cornerstone的web库cornerstoneWADOImageLoader,在实际开发中遇到了相关的一些问题,在这里说明一下, ...
- 【Python】深入浅出学习Python的yield和generator
背景 之前走马观花接触过Python协程的概念,这两天和一个同事聊到了协程,死活想不起来曾经看过的东西,就记得一个yield,概念不清: 所以想捋一捋相关的东西,此篇作为学习的记录. Generato ...
- 微信开发中使用curl忽略https证书
http://blog.csdn.net/ljh504429906/article/details/51103519 微信开发中需要使用http及https的post与get请求实现api的调用. ...
- 马哥教育python网络班19期 学习目标
马哥教育python网络班19期 学习目标: (1)按群里的学习进度表,来自行学习,学完时间6个月. (2)学完后,薪资能达到20K+每月.
- 使用lock锁或Monitor.Enter的目的
锁定的目的:由于多个线程 并行/并发 处理同一个“数据对象”(比如:在其它线程的某个地方发生了Clear.Add.Remove.Change等操作),导致“数据对象”不断变化,没法用了,所以,为了保证 ...
- C#多线程3种创建Thread、Delegate.BeginInvoke、线程池
1 创建多线程,一般情况有以下几种:(1)通过Thread类 (2)通过Delegate.BeginInvoke方法 (3)线程池 using System; using System.C ...
- Ubuntu 下Python 环境问题
问题描述: 原先使用Anaconda环境,若卸载后仍不能恢复到系统默认的Python环境. 解决方案: shell 寻找缓存路径,python的扩展/home/tom/anaconda/bin/pyt ...
- Post with HttpClient4
转载:http://www.cnblogs.com/luxiaoxun/p/6165237.html 作者:阿凡卢 出处:http://www.cnblogs.com/luxiaoxun/ HttpC ...