浅谈jQuery animate easing的具体使用方法(推荐)


Posted in Javascript onJune 17, 2016

从jQuery API 文档中可以知道,jQuery自定义动画的函数.animate( properties [, duration] [, easing] [, complete] )有四个参数:

•properties:一组包含作为动画属性和终值的样式属性和及其值的集合

•duration(可选):动画执行时间,其值可以是三种预定速度之一的字符串("slow", "normal", or "fast")或表示动画时长的毫秒数值(如:1000)

•easing(可选):要使用的过渡效果的名称,如:"linear" 或"swing"

•complete(可选):在动画完成时执行的函数

其中参数easing默认有两个效果:"linear"和"swing",如果需要更多效果就要插件支持了,jQuery Easing Plugin提供了像"easeOutExpo"、"easeOutBounce"等30多种效果,大家可以点击这里去看每一种easing的演示效果,下面详细介绍下其使用方法及每种easing的曲线图。

jQuery easing 使用方法

首先,项目中如果需要使用特殊的动画效果,则需要在引入jQuery之后引入jquery.easing.1.3.js

<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script type="text/javascript" src="http://gsgd.co.uk/sandbox/jquery/easing/jquery.easing.1.3.js"></script>

引入之后,easing参数可选的值就有以下32种:

1.linear

2.swing

3.easeInQuad

4.easeOutQuad

5.easeInOutQuad

6.easeInCubic

7.easeOutCubic

8.easeInOutCubic

9.easeInQuart

10.easeOutQuart

11.easeInOutQuart

12.easeInQuint

13.easeOutQuint

14.easeInOutQuint

15.easeInExpo

16.easeOutExpo

17.easeInOutExpo

18.easeInSine

19.easeOutSine

20.easeInOutSine

21.easeInCirc

22.easeOutCirc

23.easeInOutCirc

24.easeInElastic

25.easeOutElastic

26.easeInOutElastic

27.easeInBack

28.easeOutBack

29.easeInOutBack

30.easeInBounce

31.easeOutBounce

32.easeInOutBounce

当然一般一个项目中不可能会用到这么多效果,为了减少代码冗余,必要时可以不用引入整个jquery.easing.1.3.js,我们可以只把我们需要的几种easing放入Javascript文件中,如项目中只用到"easeOutExpo"和"easeOutBounce"两种效果,只需要下面的代码就可以了。

jQuery.extend( jQuery.easing, 
{ 
  easeOutExpo: function (x, t, b, c, d) { 
    return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; 
  }, 
  easeOutBounce: function (x, t, b, c, d) { 
    if ((t/=d) < (1/2.75)) { 
      return c*(7.5625*t*t) + b; 
    } else if (t < (2/2.75)) { 
      return c*(7.5625*(t-=(1.5/2.75))*t + .75) + b; 
    } else if (t < (2.5/2.75)) { 
      return c*(7.5625*(t-=(2.25/2.75))*t + .9375) + b; 
    } else { 
      return c*(7.5625*(t-=(2.625/2.75))*t + .984375) + b; 
    } 
  }, 
});

使用jQuery自定义动画函数animate来指定easing效果,如自定义一种类弹簧效果的动画:

$(myElement).animate({ 
  top: 500, 
  opacity: 1 
}, 1000, 'easeOutBounce');

值得一提的是jQuery 1.4版本中对animate()方法,easing的方法进行了扩展,支持为每个属性指定easing方法,详细请参考这里,如:

//第一种写法
 $(myElement).animate({ 
  left: [500, 'swing'], 
  top: [200, 'easeOutBounce'] 
}); 
//第二种写法
 $(myElement).animate({ 
  left: 500, 
  top: 200 
}, { 
  specialEasing: { 
    left: 'swing', 
    top: 'easeOutBounce' 
  } 
});

使用jQuery内置动画函数如slideUp()、slideDown()等来指定easing效果,以下两种方法都可以:

$(myElement).slideUp(1000, method, callback}); 
$(myElement).slideUp({ 
  duration: 1000,  
  easing: method,  
  complete: callback 
});

以上就是小编为大家带来的浅谈jQuery animate easing的具体使用方法(推荐)全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
采用CSS和JS,刚好我最近有个站点要用到下拉菜单!
Jun 26 Javascript
获取任意Html元素与body之间的偏移距离 offsetTop、offsetLeft (For:IE5+ FF1 )[
Dec 22 Javascript
基于jquery的动态创建表格的插件
Apr 05 Javascript
JQuery事件e参数的方法preventDefault()取消默认行为
Sep 26 Javascript
JS中如何设置readOnly的值
Dec 25 Javascript
jQuery构造函数init参数分析
May 13 Javascript
jQuery hover事件简单实现同时绑定2个方法
Jun 07 Javascript
JS触摸与手势事件详解
May 09 Javascript
利用types增强vscode中js代码提示功能详解
Jul 07 Javascript
基于Nuxt.js项目的服务端性能优化与错误检测(容错处理)
Oct 23 Javascript
微信小程序scroll-view隐藏滚动条的方法详解
Mar 25 Javascript
js实现浏览器打印功能的示例代码
Jul 15 Javascript
jQuery animate easing使用方法图文详解
Jun 17 #Javascript
JS常用字符串方法(推荐)
Jan 15 #Javascript
url中的特殊符号有什么含义(推荐)
Jun 17 #Javascript
JS模拟的Map类实现方法
Jun 17 #Javascript
jQuery实现iframe父窗体和子窗体的相互调用
Jun 17 #Javascript
JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“
Jun 16 #Javascript
JS阻止事件冒泡行为和闭包的方法
Jun 16 #Javascript
You might like
地球防卫队:陪着奥特曼打小怪兽的人类力量 那些经典队服
2020/03/08 日漫
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
2013/11/07 PHP
PHP的PDO事务与自动提交
2019/01/24 PHP
执行iframe中的javascript方法
2008/10/07 Javascript
让AJAX不依赖后端接口实现方案
2012/12/03 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
jQuery的position()方法详解
2015/07/19 Javascript
限制文本框只能输入数字||只能是数字和小数点||只能是整数和浮点数
2016/05/27 Javascript
利用jQuery插件imgAreaSelect实现图片上传裁剪(放大缩小)
2016/12/02 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
angularJS1 url中携带参数的获取方法
2018/10/09 Javascript
小程序rich-text组件如何改变内部img图片样式的方法
2019/05/22 Javascript
解决Can't find variable: SockJS vue项目的问题
2020/09/22 Javascript
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
Python GAE、Django导出Excel的方法
2008/11/24 Python
python为tornado添加recaptcha验证码功能
2014/02/26 Python
使用优化器来提升Python程序的执行效率的教程
2015/04/02 Python
Python发送email的3种方法
2015/04/28 Python
python获取外网IP并发邮件的实现方法
2017/10/01 Python
python实现Decorator模式实例代码
2018/02/09 Python
Python获取航线信息并且制作成图的讲解
2019/01/03 Python
使用python将最新的测试报告以附件的形式发到指定邮箱
2019/09/20 Python
Django获取model中的字段名和字段的verbose_name方式
2020/05/19 Python
opencv之颜色过滤只留下图片中的红色区域操作
2020/06/05 Python
浅谈python出错时traceback的解读
2020/07/15 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
香港家用健身器材、运动器材及健康美容仪器专门店:FitBoxx
2019/12/05 全球购物
应届生污水处理求职信
2013/11/06 职场文书
简历自我评价怎么写呢?
2014/01/06 职场文书
三八妇女节慰问信
2015/02/14 职场文书
2015大学生入党个人自传
2015/06/26 职场文书
小学数学新课改心得体会
2016/01/22 职场文书
mysql中数据库覆盖导入的几种方式总结
2022/03/25 MySQL
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis