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

一、Velocity.js介绍

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

  Velocity.js只有7k的大小,它不仅包含了$.animate()的所有功能,并且还包含了颜色切换、转换(transform)、循环、缓动、CSS切换、Scroll功能,它是jQuery、 jQuery UI、CSS变换在动画方面的最佳组合。

  Velocity.js支持IE8+、Chrome、Firefox等浏览器,并支持Andriod以及IOS。

  Velocity.js在内部实现中使用了jQuery的$.queue()方法,因此它比 jQuery的$.animate()$.fade()$.delay()方法更加流畅,其性能也高于CSS的animation属性。

 

 二、项目主页

  http://julian.com/research/velocity/

  下载:http://www.jqcool.net/localdown/201503/jqcool.net-velocity.zip

 

 三、使用

 3.1 Velocity.js包含两个输入参数,第一个参数 为 CSS属性,第二个参数为可选参数,为 velocity 配置选项。具体如下:  

$("div").velocity({ 
    property1: value1,
    property2: value2
}, {
    /* Default options */
    duration: 400,
    easing: "swing",
    queue: "",
    complete: null,
    loop: false,
    delay: false,
    display: false,
    mobileHA: true
});

 Velocity.js同样支持jQuery的参数简写语法:$element.velocity(propertyMap [, duration] [, easing] [, complete]):,比如:

$("div").velocity({ left: 100 }, 1000);
$("div").velocity({ left: 100 }, 1000, "swing");
$("div").velocity({ left: 100 }, "swing");

 

3.2 制作动画序列的三种方式

  • 统一HTML代码:
<div class="div1"></div>
<div class="div2"></div>

 

  • 统一CSS样式:
.div1{ width: 120px; height: 120px; background-color: red;}
.div2{ width: 120px; height: 120px; background-color: blue; margin-top: 20px;}

 

  • 动画序列方式一:
(function($){
    // 方式一:
    $('.div1').velocity(
  { width:
'400px' },
  { duration:
600, complete:function(){ //队列 $('.div2').velocity({ width:'400px' },{ duration:600 }) } }) })(jQuery)

 

  • 动画序列方式二:
(function($){
   // 方式二: $(
'.div1').velocity(
{   width:
'400px' },{   duration:600 }) $('.div2').velocity(
{ width:
'400px' },{ duration:600, delay:600 }) })(jQuery)

 

  • 动画序列方式三(推荐使用
(function($){
    // 方式三:
    var seq = [
    {
        elements:$('.div1'),
        properties:{ width:'500px'},
        options:{ duration:600}                
    },
    {
        elements:$('.div2'),
        properties:{ width:'500px'},
        options:{ duration:600}                
    }
    ];
    $.Velocity.RunSequence(seq);

})(jQuery)

 

3.3 预定义动画

(function($){
    //预定义动画
    $('.div1').on('mouseover',function(){
        $(this).velocity('callout.shake')  //官网定义了很多预定义动画:callout.bounce、callout.pulse、callout.swing等
    });
    //定义自己的动画效果(RegisterEffect或者RegisterUI)
    $.Velocity.RegisterEffect('mycall.scalex',{
        defaultDuration:300,
        calls:[
            [{ scaleX : 1.2 },0.5],   //[ { property : value }, durationPercentage, {options} ]
            [{ scaleX : 1.0 },0.5]
        ]
    })
  //调用自定义动画 $(
'.div2').on('mouseover',function(){ $(this).velocity('mycall.scalex') }) })(jQuery)

 

参考:http://www.infoq.com/cn/news/2014/05/jquery-velocity-js

慕课网:Velocity.js实现弹出式相框

 

posted @ 2016-05-15 12:42  奔跑的蜗牛~  阅读(294)  评论(0编辑  收藏  举报