第二章:基础知识

一、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学习的更多相关文章

  1. jquery动画切换引擎插件 Velocity.js 学习02

    案例实践: 第一页会以动画形式进入页面: 点击进入按钮时,第一页以动画消失,第二页以动画形式进入,同时四张图片也定义从小到大的动画形式: 第二页关闭按钮点击时,先是四张图片以缩小动画消失,然后第二页以 ...

  2. jquery动画切换引擎插件 Velocity.js 学习01

    一.Velocity.js介绍 Velocity是一个jQuery插件,重新实现了$.animate() 来产生更高的性能(速度也比CSS动画库更快),而包括新的功能,以提高动画工作流程. Veloc ...

  3. 【JavaScript动画基础】学习笔记(一)-- 旋转箭头

    随着鼠标的移动旋转箭头. requestAnimationFrame 在requestAnimationFrame之前我们可以用setInterval来实现动画的循环: function drawFr ...

  4. velocity.js 动画插件

    1. velocity.js 插件介绍 Velocity 是独立于jQuery的,但两者可以结合使用的动画插件.用法类似 jq 的 animate ,但是支持更高级动画. ( 颜色动画.转换动画(tr ...

  5. Web高性能动画及渲染原理(1)CSS动画和JS动画

    目录 一. CSS动画 和 JS动画 1.1 CSS动画 1.2 JS动画 1.3 小结 二. 使用Velocity.js实现动画 示例代码托管在:http://www.github.com/dash ...

  6. 高性能Web动画和渲染原理系列(1)——CSS动画和JS动画

    [摘要] 介绍CSS动画和JS动画的基本特点,以及轻量级动画库velocity.js的基本用法. 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园 ...

  7. 一统江湖的大前端(8)- velocity.js 运动的姿势(上)

    [摘要] 介绍CSS动画和JS动画的基本特点,以及轻量级动画库velocity.js的基本用法. 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园 ...

  8. JQuery动画插件Velocity.js发布:更快的动画切换速度

    5月3日,Julian在其GitHub上发布了Velocity.js.Velocity.js是一款动画切换的jQuery插件,它重新实现了jQuery的$.animate()方法从而加快动画切换的速度 ...

  9. Velocity.js发布:更快的动画切换速度

    Velocity.js是一款动画切换的jQuery插件,它重新实现了jQuery的$.animate()方法从而加快动画切换的速度.Velocity.js只有7k的大小,它不仅包含了$.animate ...

随机推荐

  1. PHP多维数组元素操作类

    我的框架里面一个多维数组元素操作类,主要用于读取数组中配置数据,可以通过字符串节点的方式:a.b.c 来获取和设置元素,以及多维数组的覆盖,有需求的可以参考下吧! <?php /** * Cre ...

  2. linux c 需要掌握的技能大概——前辈的话

    gcc+gdb+makefile+vi是一套组合,不能单纯的拆分开来学习. gcc主编译单个文件 gdb调试 makefile用于大型工程解决不同源文件的依赖关系 vi/emacs是编辑器 如果有条件 ...

  3. VS辅助工具

    tfs签入策略修改工具Team Foundation Server 2015 Power Tools(tfpt) 添加签入禁止策略 \*/bin \*/obj \*/Release \*/Debug ...

  4. vim实用技巧总结

    1. 单个文件内实用mark来帮助跳转以及一些宏操作.(注意:mark不能用于多文件之间的跳转)mch 设置宏,保存到ch标记(不是ch寄存器)'ch 跳转到标记的行首`ch 跳转到标记的字符处另:为 ...

  5. 文档在线预览开源实现方案三:OpenOffice + PDFRenderer + js

    之前的方案无法很好地解决异构平台及不同浏览器的兼容性问题,如方案一需要客户端浏览器支持flash而移动端浏览器无法支持这点,虽然移动端浏览器支持方案二,但是一些老版本的IE浏览器无法支持,例如IE8就 ...

  6. PHP判断一个变量是否可以通过foreach进行遍历

    <?php if( !is_array( $items ) && !$items instanceof Traversable ) //Throw exception here ...

  7. Kostya the Sculptor

    Kostya the Sculptor 题目链接:http://codeforces.com/problemset/problem/733/D 贪心 以次小边为第一关键字,最大边为第二关键字,最小边为 ...

  8. DP! | 不要怂!

    跟一个博客刷: http://blog.csdn.net/cc_again/article/details/25866971 一.简单基础dp 1.递推 HDU 2084 #include <b ...

  9. [Q]无矩形外框块参照图形的识别

    该图纸的图框由块参照组成,其外侧图框不是矩形 使用默认设置无法正确识别,需要做以下修改:不勾选“块/外部参照”,勾选“块/外部参照边界”,勾选“制定块”并选择图框(块参照).

  10. [SOJ] 无路可逃?

    Description 唐僧被妖怪关在迷宫中.孙悟空好不容易找到一张迷宫地图,并通过一个魔法门来到来到迷宫某个位置.假设迷宫是一个n*m的矩阵,它有两种地形,1表示平地,0表示沼泽,孙悟空只能停留在平 ...