javascript动画:velocity.js学习
第二章:基础知识
一、velocity和jQuery:
Velocity函数是独立于jQuery的,但两者可以结合使用。通常这么做的好处是可以利用jQuery的链式操作:当你先用jQuery选择了一个元素后,就可以用这个元素去调用.velocity()为它添加动画效果。例如:
//将一个变量分配给某个jQuery元素对象。
var $div = $(“div”);
//使用velocity设置该元素的动画
$div.velocity({ opacity : 0 });
//该句语法与jQuery自有的animate函数相同;
//$div.animate({ opatity : 0 });
二、参数:
velocity接受多个参数。第一个参数是一个对象,用于将CSS属性映射到最终的期望数值上。例如:
//设置元素的width属性值变动至“500px”且其opacity属性值变动至1的动画。
$element.velocity({ width:500px , opacity :1 }) ;
★小提示:如果你提供的属性值包含字母,那么要将它们用半角引号括起来。
可以将一个指定动画的对象作为第二个参数传入。
还有一种参数简写语法,那就是不将选项对象作为第二个参数传入,而是使用逗号分隔参数语法。这种写法需要列举出动画的持续时间、缓动形式和动画执行完毕后触发的一个毁掉函数。
三、属性
基于CSS的属性动画与基于javascript的属性动画有两点区别:
1.velocity针对每个CSS属性,只接受一个唯一值,这点与css不同。因此可以这样传入动画:
$element.velocity({ padding : 10 }) ;
要传入多个值时必须一一列出来:
$element.velocity({
paddingTop : 10,
paddingRight : 10,
paddingLeft : 20,
paddingBottom : 20
});
2.javascript的属性名称中,单词之间的连接号去掉了,除第一个单词外,其余单词都首字母大写。例如:padding-left变成了paddingLeft。
四、值
velocity支持px、em、rem、%、deg、vw和vh这些单位,如果没有为数值提供单位,那么就会根据CSS属性类型自动指派一个单位给它。对于大多数属性,px是默认单位。
五、链式操作
当一个元素链式调用多个velocity函数时,它们会自动排成队列,这意味着前一个动画结束后一个动画马上开始。
六、使用velocity:选项
1.duration(持续时间)
可以以毫秒为单位指定duration选项,该选项指定一个动画调用需要花费多长时间才能完成,或者也可以将duration指定为以下三个简写duration之一:“slow”(相当于600ms),“normal”(相当于400ms)或“fast”(相当于200ms)。以毫秒为单位指定duration值时,请提供一个不带单位的整数值。
2.easing(缓动)
“ease-in-out”缓动类型就表示动画一开始要逐渐加速最后要逐渐减速。
“ease-in”缓动类型则使动画在一开始就达到加速的目的,然后一直到动画结束。
“ease-out”缓动类型使动画以恒定速度开始并持续一段时间,然后在动画结束前逐渐减速。
(1)jQuery UI中的三角函数缓动:
$div.velocity({width:"300px"},"easeInOutSine");
(2)CSS缓动:
“ease-in”、“ease-in-out”、“ease-out”、“ease”(“ease-in-out”的另一个更缓和的版本)
(3)CSS的贝塞尔曲线:通过贝塞尔曲线缓动,可以完全控制一个缓动加速曲线的结构。参数格式是一个含有四个小数的数组。
$div.velocity({width:"300px"},[0.17,0.67,0.83,0.67]);
(4)弹簧物理
这类缓动类型就是模仿弹簧在拉伸之后被突然释放的弹动行为。参数格式是一个含有两个值的数组[张力、摩擦力]。张力越大(默认:500),整体速度和弹动幅度就越大。摩擦力越小(默认:20),弹簧结尾处的震动速度就越快。
$div.velocity({width : "300px"},[250,15]);
(5)如果不想实验各种张力和摩擦力数值,“spring”缓动就是一种随手可用的弹簧物理缓动的预设。
$div.velocity({width:"500px"},"spring");
3.begin(开始)和complete(完成)
使用begin和complete选项可以指定要在动画中的特定时间点触发的函数:为begin设置的函数会在动画开始前触发。与之相反,为complete设置的函数会在动画完成时调用。使用这两个选项,每次调用动画时都会调用一次指定函数,即使同时制作多个元素的动画也是如此。
$div.velocity(
{ opacity:0 ,width:"500px"},
{
begin : function(){
alert("begin!");
},
complete : function(){
alert("complete!")
}
})
4.loop(循环)
将loop选项设置为一个整数,该整数是几,动画就在调用的属性映射汇总的值与调用之前元素的值之间交替几次。
$div.velocity({height:"10em"},{loop : 2});
除了可以传入整数以外,还可以将true传给loop,这样会无限触发循环。
无限循环对于加载指示器大有帮助。(警灯)
$div.velocity({ opacity:0},{loop:true});
5.delay(延迟)
将delay指定为多少毫秒,在动画开始之前就会暂停多长时间。delay选项的目的是将动画的定时逻辑完全保留在velocity内,而不是在velocity的动画开始时依赖jquery的$.delay()函数来更改。
$div.velocity({opacity:0},{delay:100});
可以同时设置delay和loop选项,这样可以在循环交替之间创建一个停顿。
//循环四次,每次循环之间都等待1000毫秒
$div.velocity({height:"+=100px",width:"+=100px"},{loop:4,delay:1000});
6.display(显示)和visibility(可见性)
velocity中的display和visibility选项与CSS中的同名属性一一对应,接受的值也相同,包括“none”,“inline”,“inline-block”,“block”,“flex”等。
$div.velocity({opacity:0},{display:"block"});
七、其他功能
velocity.js的其他值得一提的功能包括:reverse(反转)、scrolling(滚动)、color(颜色)和transform(变换,包括translation“平移”、rotate“旋转”和“scale”缩放)
javascript动画:velocity.js学习的更多相关文章
- jquery动画切换引擎插件 Velocity.js 学习02
案例实践: 第一页会以动画形式进入页面: 点击进入按钮时,第一页以动画消失,第二页以动画形式进入,同时四张图片也定义从小到大的动画形式: 第二页关闭按钮点击时,先是四张图片以缩小动画消失,然后第二页以 ...
- jquery动画切换引擎插件 Velocity.js 学习01
一.Velocity.js介绍 Velocity是一个jQuery插件,重新实现了$.animate() 来产生更高的性能(速度也比CSS动画库更快),而包括新的功能,以提高动画工作流程. Veloc ...
- 【JavaScript动画基础】学习笔记(一)-- 旋转箭头
随着鼠标的移动旋转箭头. requestAnimationFrame 在requestAnimationFrame之前我们可以用setInterval来实现动画的循环: function drawFr ...
- velocity.js 动画插件
1. velocity.js 插件介绍 Velocity 是独立于jQuery的,但两者可以结合使用的动画插件.用法类似 jq 的 animate ,但是支持更高级动画. ( 颜色动画.转换动画(tr ...
- Web高性能动画及渲染原理(1)CSS动画和JS动画
目录 一. CSS动画 和 JS动画 1.1 CSS动画 1.2 JS动画 1.3 小结 二. 使用Velocity.js实现动画 示例代码托管在:http://www.github.com/dash ...
- 高性能Web动画和渲染原理系列(1)——CSS动画和JS动画
[摘要] 介绍CSS动画和JS动画的基本特点,以及轻量级动画库velocity.js的基本用法. 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园 ...
- 一统江湖的大前端(8)- velocity.js 运动的姿势(上)
[摘要] 介绍CSS动画和JS动画的基本特点,以及轻量级动画库velocity.js的基本用法. 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园 ...
- JQuery动画插件Velocity.js发布:更快的动画切换速度
5月3日,Julian在其GitHub上发布了Velocity.js.Velocity.js是一款动画切换的jQuery插件,它重新实现了jQuery的$.animate()方法从而加快动画切换的速度 ...
- Velocity.js发布:更快的动画切换速度
Velocity.js是一款动画切换的jQuery插件,它重新实现了jQuery的$.animate()方法从而加快动画切换的速度.Velocity.js只有7k的大小,它不仅包含了$.animate ...
随机推荐
- Largest prime factor
problem 3:Largest prime factor 题意:求600851475143的最大的质因数 代码如下: #ifndef PRO3_H_INCLUDED #define PRO3_H_ ...
- [HMLY]11.iOS函数式编程的实现&&响应式编程概念
简介 本篇主要回顾一下--iOS函数式编程 && 响应式编程概念 ,如何一步步实现函数式编程的过程,对阅读Masonry && SnapKit源码有一定的帮助. 作为一 ...
- C++-----lambda使用
lambda是匿名函数,可以拿来当作inline函数使用(用于解决程序员的"起名困难综合症") lambda函数形式: [...] (...) ... {...} [] 内是一个c ...
- KMS服务器搭建
- mysql权限设置
想要设定权限,必须通过root用户登录: >> grant all privileges on *.* to root@"%" identified by " ...
- mybatis学习笔记一(入门)
昨天看了一下mybatis,学习了一下有很多东西还不懂,但是想把一些知道的记录一下,如有错误请大家多多指点. mybatis它是apche的一个开源项目,它以前的没名字并不是叫mybatis而是叫ib ...
- js 数值格式化函数
function ForDight(Dight,How){ ,How))/Math.pow(,How); return Dight; } //ForDight(Dight,How):数值格式化函数; ...
- android工具类常用方法
1.获取手机唯一识别号 添加AndroidManifest.xml权限 <uses-permission android:name="android.permission.READ_P ...
- centos6.5 安装zabbix
实验说明: 操作系统: CentOS6.5 64位 Web环境: Apache Mysql PHP zabbix版本: LTS 2.2.10 Linux服务器IP: 10.0.0.2 Linux客户端 ...
- Unity3D脚本使用:游戏对象访问
Unity3D中用到的组件 组件在js中对应的对象 使用如图: 注意:一个物体可以添加多个组件和多个js 同个物体上添加的js间引用