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 ...
随机推荐
- struts2框架学习(二)
---恢复内容开始--- 一.搭建步奏 1.新建web项目,进行必备Jar包的拷贝,放到lib目录以便项目的引用. 2.拷贝框架的核心配置文件Struts.xml,放到src目录下,保留一个基本配置即 ...
- pickle.dump()
封装是一个将Python数据对象转化为字节流的过程,拆封是封装的逆操作,将字节文件或字节对象中的字节流转化为Python数据对象,不要从不收信任的数据源中拆封数据.可以封装和拆封几乎任何Python数 ...
- sw代码问题
1.环境版本问题,myeclipse 配 jdk1.7 不能用jdk1.8 :jdk1.6满足不了代码本身 报错为:The type java.io.ObjectInputStream cannot ...
- 觉得VR头显太笨重?轻便的VR“神器”来了
一直以来需要搭配手机才能使用的VRBOX(VR眼镜盒子)都被大家诟病携带不便.比较笨重.不透气等等问题.大家也一直期待能够有轻便的搭配手机的VR设备出现,最好是可以随身携带的.另外一方面,作为手机最常 ...
- Jmeter之基本介绍
初学Jmeter,以下是我常用的功能,总结一下. 1.Thread Group线程组 线程组,即:虚拟用户组
- Aspose系列实现docx转PDF,PPT转PDF,EXCEL转PDF
没有什么营养,就是调用一下这个组件.其实一开始用的是Microsoft.Office.Interop.Excel;Microsoft.Office.Interop.Word 但是在服务器要注意,服务器 ...
- git忽略某些文件提交
git忽略某些文件提交 在项目中有些配置文件不需要提交,但是有同学在后面开发中发现在.igonore文件中无论如何都无法忽略某些文件的提交.原因在这里: 已经维护起来的文件,即使加上了gitign ...
- Junit4单元测试之高级用法
Junit单元测试框架是Java程序开发必备的测试利器,现在最常用的就是Junit4了,在Junit4中所有的测试用例都使用了注解的形式,这比Junit3更加灵活与方便.之前在公司的关于单元测试的培训 ...
- Android Studio新手
目标:Android Studio新手–>下载安装配置–>零基础入门–>基本使用–>调试技能–>构建项目基础–>使用AS应对常规应用开发 AS简介 经过2年时间的研 ...
- SpannableString可以被点击的文字
1 TextView tv= (TextView) findViewById(R.id.textview_z); String text="一段可以被点击点击的文字,文字可以变成图片&quo ...