zoukankan      html  css  js  c++  java
  • 分享JQuery动画插件Velocity.js的六种列表加载特效

    分享JQuery动画插件Velocity.js的六种列表加载特效。在这款实例中给中六种不同的列表加载效果。分别为从上飞入、从右侧飞入、从左侧飞入、和渐显。一起看下效果图:

    在线预览   源码下载

    实现的代码。

    html代码:

     <h1>
            Velocity.js <i>slice + sequence</i></h1>
        <pre>Only anim X number with FX#1, animate Y number with FX#2 etc / Read JS source for more
    <span>v1.0 &ndash; Added code</span>
    </pre>
        <div id="btn">
            <i class="type1">Run type 1</i> <i class="type2">Type 2</i> <i class="type3">Type 3</i>
            <i class="type4">Type 4</i> <i class="type5">Type 5</i> <i class="type6">Type 6</i></div>
        <div id="boxes">
            <!-- load via JSONP -->
        </div>
        <!-- /#boxes -->
        <script src='jquery.js'></script>
        <script src='velocity.min.js'></script>
        <script src='velocity.ui.min.js'></script>
        <script>/*
      + jquery.js
      + velocity.js
      + velocity.ui.js
    */
    
    /* -----------------------------------------------------
    
    VELOCITY.JS SLUCE + SEQUENCE
    
    Animate different boxes with different animations and sequence it.
    This demo has a bounch of stuff not needed for a basic slice + sequence
    since everything is wrapped up in a function and lots of if/else statements.
    
    For basic usage of using Velocity sequence go to:
    http://julian.com/research/velocity/#uiPack
    
    ----------------------------------------------------- */
    
    
    
    
    // Define base div
    var boxes = $('#boxes');
    
    
    /* -----------------------------------------------------
    REGISTER CLICK EVENTS FOR BUTTONS
    ----------------------------------------------------- */
    
    $('.type1').click(function(){
      goVelocity(true);
    })
    
    $('.type2').click(function(){
      goVelocity(true, 'custom.flickDownIn', 'custom.flickUpIn', vOption2);
    })
    
    $('.type3').click(function(){
      goVelocity(true, 'custom.zoomOutIn', 'custom.zoomInIn', vOption3);
    })
    
    $('.type4').click(function(){
      goVelocity(true, 'custom.superZoomOutIn', 'custom.superZoomOutIn', vOption4);
    })
    
    $('.type5').click(function(){
      goVelocity('type5', '', '', vOption5);
    })
    
    $('.type6').click(function(){
      goVelocity('type7', '', '', vOption5);
    })
    
    
    
    
    
    /* -----------------------------------------------------
    GET SOME CONTENTS
    100% UNRELATED to animation, scroll down the 'real' stuff
    ----------------------------------------------------- */
    
    boxes.append('<div id="load">Loading data...</div>')
    
    var getMax = 12;
    var str = '';
    //var tags = 'tommiehansen+sunset';
    var
    tags = 'tommiehansen',
    sort = 'interestingness-desc';
    uri = "http://pipes.yahoo.com/pipes/pipe.run?_id=6b12dfa3cc61dcafcdcb116bc8114e0b&_render=json&search="+tags+"&sort="+sort+"&num="+getMax;
    $.getJSON(uri,
      function(data) {
        $.each(data.value.items, function(i,item){
         //var img = item.media.m;
         var img = item.guid; img = img.replace('.jpg','_m.jpg');
            
            str += '<div class="box">';
            str += '<a href="' + "http://www.w2bc.com" + '" target="_blank">';
            str += '<img src="' + img + '" width="240" height="159" /></a>';
            str += '<div class="boxRight"><h3>' + item.title + '</h3><i>Photo <span>by</span> ';
            str += '<a href="' +  "http://www.w2bc.com" + '" target="_blank">Tommie Hansen</a> / flickr</i>';
            str += '</div></div>';
    
          if (i == getMax-1) { return false; }
        });
        
        boxes.empty().append(str);
        goVelocity(); // run initial
      });
    
    
    
    
    /* -----------------------------------------------------
    BEGIN VELOCITY ANIMATIONS
    ----------------------------------------------------- */
    
    
    // Register new animations
    
    $.Velocity.RegisterUI("custom.slideUpIn", {
      defaultDuration: 500,
      calls: [[ { opacity: [1,0], translateY: [0,90], translateZ: 0 } ]]
    });
    
    $.Velocity.RegisterUI("custom.slideDownIn", {
      defaultDuration: 500,
      calls: [[ { opacity: [1,0], translateY: [0,-90], translateZ: 0 } ]]
    });
    
    $.Velocity.RegisterUI("custom.slideLeftIn", {
      defaultDuration: 500,
      calls: [[ { opacity: [1,0], translateX: [0,-90], translateZ: 0 } ]]
    });
    
    $.Velocity.RegisterUI("custom.slideRightIn", {
      defaultDuration: 500,
      calls: [[ { opacity: [1,0], translateX: [0,90], translateZ: 0 } ]]
    });
    
    $.Velocity.RegisterUI("custom.zoomOutIn", {
      defaultDuration: 500,
      calls: [[ { opacity: [1,0], scale:[1,1.5], translateZ: 0 } ]]
    });
    
    $.Velocity.RegisterUI("custom.zoomInIn", {
      defaultDuration: 500,
      calls: [[ { opacity: [1,0], scale:[1,0.5], translateZ: 0 } ]]
    });
    
    $.Velocity.RegisterUI("custom.superZoomOutIn", {
      defaultDuration: 500,
      calls: [[ { opacity: [1,0], scale:[1,5], translateZ: 0, translateY: [0,500] } ]],
    });
    
    $.Velocity.RegisterUI("custom.flickUpIn", {
      defaultDuration: 500,
      calls: [[ { opacity: [1,0], translateY: [0,90], rotateZ: [0,10], translateZ: 0 } ]]
    });
    
    $.Velocity.RegisterUI("custom.flickDownIn", {
      defaultDuration: 500,
      calls: [[ { opacity: [1,0], translateY: [0,-90], rotateZ: [0,-10], translateZ: 0 } ]]
    });
    
    $.Velocity.RegisterUI("custom.fadeOut", {
      defaultDuration: 300,
      calls: [[ { opacity: 0, translateZ: 0 } ]],
      reset: { translateY:0, opacity:0, rotateZ:0, scale:1, translateX:0 }
    });
    
    
    // Define some Velocity option VARs for re-use etc
    
    var vOption = { duration: 400, stagger: 60, easing: 'easeOutQuad', display: false };
    var vOption2 = { duration: 300, stagger: 90, easing: 'easeOutExpo', display: false };
    var vOption3 = { duration: 300, stagger: 60, easing: 'easeOutQuad', display: false };
    var vOption4 = { duration: 700, stagger: 60, easing:'easeOutQuad', display: false };
    var vOption5 = { duration: 500, easing:'easeOutQuad', display: false };
    var vOption6 = { duration: 500, easing:'easeOutQuad', display: false, sequenceQueue: false };
    
    // Default transitions
    var 
    anim1 = 'custom.slideLeftIn',
    anim2 = 'custom.slideRightIn';
    
    
    
    function goVelocity(isOut, ani1, ani2, vOpt) {
      
      if(!ani1) { ani1 = anim1, ani2 = anim2 };
      if(!vOpt) { vOpt = vOption; };
      
      // base VARs
      var box = boxes.find('.box');
      
      // Slice boxes to different groups (for IN-transitions)
      var
      slice1 = 3, // 1-3
      slice2 = 6, // 4-6
      slice3 = 9; // 7-9
      
      // setup Velocity sequence
      var
      seq1 = box.slice(0, slice1).get(),        // .get() = transform jquery object to raw DOM nodes
      seq2 = box.slice(slice1, slice2).get(),
      seq3 = box.slice(slice2, slice3).get(),
      seq4 = box.slice(slice3).get();          // rest of elements after slice3
      
      
      
      var velocitySequence;
      $.Velocity(box.get(), "stop");  // stop all animation if one is already running
      
      // Begin a lot of if()
      
      if(isOut==true){
        velocitySequence = [
          { elements: box.get(), properties: 'custom.fadeOut', options: vOption },
          { elements: seq1, properties: ani1, options: vOpt },
          { elements: seq2, properties: ani2, options: vOpt },
          { elements: seq3, properties: ani1, options: vOpt },
          { elements: seq4, properties: ani2, options: vOpt }
        ];
        
        $.Velocity.RunSequence(velocitySequence);
      }
      
      else if(isOut=='type5'){
        var b = box.get(); // convert to raw dom nodes
        var nth1 = box.filter(':nth-child(3n+1)').get();
        var nth2 = box.filter(':nth-child(3n)').get();
        var nth3 = box.filter(':nth-child(3n-1)').get();
        velocitySequence = [
          { elements: b, properties: 'custom.fadeOut', options: vOption },
          { elements: nth1, properties: 'custom.slideDownIn', options: vOpt },
          { elements: nth2, properties: 'custom.slideUpIn', options: vOption6 },
          { elements: nth3, properties: 'custom.zoomOutIn', options: vOption3 },
        ];
        
        $.Velocity.RunSequence(velocitySequence);
      }
          
      else if(isOut=='type6'){
        var b = box.get(); // convert to raw dom nodes
        var one = box.slice(0,1)
        var two = box.slice(1,3);
        var three = box.slice(3);
        velocitySequence = [
          { elements: b, properties: 'custom.fadeOut', options: vOption },
          { elements: one, properties: 'custom.slideDownIn', options: vOpt },
          { elements: two, properties: 'transition.slideUpIn', options: vOption6 },
          { elements: three, properties: 'transition.slideDownIn', options: vOption5 },
        ];
        
        $.Velocity.RunSequence(velocitySequence);
      }
      
      else if(isOut=='type7'){
        var b = box.get(); // convert to raw dom nodes
        //var s1 = box.eq(0);
        //var s2 = box.eq(4)
        var s0 = box.slice(0,1);
        var s1 = box.slice(1,2);
        var s2 = box.slice(2,3);
        var s3 = box.filter(':nth-child(3n-1)');
        s3 = s3.slice(1); // skip first
        var s4 = box.filter(':nth-child(3n+1)');
        s4 = s4.slice(1); // skip first
        var s5 = box.filter(':nth-child(3n)');
        s5 = s5.slice(1); // skip first
        velocitySequence = [
          { elements: b, properties: 'custom.fadeOut', options: vOption },
          { elements: s0, properties: 'custom.slideLeftIn', options: vOpt },
          { elements: s1, properties: 'custom.slideDownIn', options: vOption6 },
          { elements: s2, properties: 'custom.slideRightIn', options: vOption6 },
          { elements: s3, properties: 'custom.slideUpIn', options: vOpt },
          { elements: s4, properties: 'custom.slideLeftIn', options: vOpt },
          { elements: s5, properties: 'custom.slideRightIn', options: vOption6 },
        ];
        
        $.Velocity.RunSequence(velocitySequence);
      }
          
      else {
        // Page load animation
        box.css('opacity', 0);
        velocitySequence = [
          { elements: seq1, properties: ani1, options: vOpt },
          { elements: seq2, properties: ani2, options: vOpt },
          { elements: seq3, properties: ani1, options: vOpt },
          { elements: seq4, properties: ani2, options: vOpt }
        ];
        
        $.Velocity.RunSequence(velocitySequence);
      }    
    
    
    
    } // end goVelocity()//@ sourceURL=pen.js
        </script>
    View Code

    css代码:

     html, body
            {
                min-height: 100%;
            }
            body
            {
                font-family: "Open Sans" , helvetica,arial,sans-serif;
                font-size: 13px;
                line-height: 160%;
                font-weight: 300;
                color: #444;
                background: #eee;
            }
            *, *:before, *:after
            {
                box-sizing: border-box;
            }
            img
            {
                display: block;
            }
            i
            {
                font-style: normal;
            }
            em
            {
                font-style: italic;
            }
            
            /* Refresh, add boxes etc */
            #a
            {
                position: absolute;
                top: 20px;
                right: 20px;
                display: block;
                background: #eee;
                color: #aaa;
                -webkit-user-select: none;
                user-select: none;
            }
            #a i
            {
                cursor: pointer;
                font-size: 11px;
                padding: 8px 10px;
                border: 1px dotted #ccc;
                transition: all .12s;
                margin-left: -1px;
            }
            #a .fa
            {
                font-family: "Open Sans" , sans-serif;
            }
            #a .fa:last-child
            {
                background: #d00;
                border-color: #d00;
                color: #fff;
            }
            #a .fa:last-child:hover
            {
                background: #a00;
                border-color: #a00;
            }
            
            #btn
            {
                text-align: center;
                margin-top: -30px;
            }
            #btn i
            {
                cursor: pointer;
                background: hotpink;
                color: #fff;
                padding: 0 14px;
                margin: 0 2px;
                line-height: 250%;
                display: inline-block;
                transition: all .2s ease;
                border-radius: 2px;
            }
            #btn i:hover
            {
                background: #333;
            }
            
            /* ----- end defaults ---- */
            
            /* Main layout */
            #boxes
            {
                padding-bottom: 1000px;
            }
            #boxes, h1, pre
            {
                width: 660px;
                margin: 40px auto;
                text-align: center;
                position: relative;
            }
            #boxes
            {
                width: auto;
                max-width: 850px;
                text-align: center;
            }
            
            /*#boxes, .box  { transform: translate3d(0,0,0); }*/
            
            /* Headers */
            h1, h2
            {
                font-size: 21px;
                line-height: 100%;
                font-weight: 300;
            }
            h1
            {
                font-size: 24px;
                font-weight: 700;
                border-bottom: 1px solid #ccc;
            }
            h1 i
            {
                font-weight: 300;
            }
            
            pre
            {
                display: block;
                margin-top: -25px;
                text-transform: uppercase;
                color: #888;
                font-size: 11px;
                letter-spacing: .5px;
            }
            pre i
            {
                cursor: help;
                display: inline-block;
                margin: 0 0 0 3px;
            }
            pre i:hover
            {
                color: #222;
            }
            pre span
            {
                color: #aaa;
                display: block;
                letter-spacing: 0;
            }
            
            
            
            /* Paddings / Margins */
            h1
            {
                padding: 20px 0;
            }
            h2, h3
            {
                margin: 0 0 12px;
            }
            h3
            {
                font-size: 12px;
                white-space: nowrap;
                width: auto;
                overflow: hidden;
                text-overflow: ellipsis;
                display: block;
                margin-top: 4px;
            }
            .box
            {
                margin: 0 15px 30px;
            }
            /* inline-block adds +4px margin */
            .box img.full
            {
                margin: -1px 0 9px -1px;
            }
            .box a
            {
                color: inherit;
                text-decoration: none;
                border-bottom: 1px dotted #ccc;
            }
            .box a:hover
            {
                border-color: hotpink;
                color: hotpink;
            }
            
            /* Boxes */
            .box
            {
                height: 150px;
                _opacity: 0;
                display: block;
                text-align: left;
                border: 1px solid #ddd;
                border-bottom: 1px solid #ccc;
                background: #fff;
                width: 240px;
                height: auto;
                display: inline-block;
            }
            
            .boxRight
            {
                _padding: 15px 40px 0 0;
                padding: 0 20px;
                text-align: center;
            }
            .boxRight h3
            {
                margin-bottom: 0;
            }
            .boxRight i
            {
                display: block;
                font-size: 11px;
                color: #888;
                font-style: normal;
                margin: 0 0 10px 0;
            }
            .boxRight i span
            {
                font-family: georgia, serif;
                font-style: italic;
                font-size: 11px;
                color: #aaa;
            }

    注:本文爱编程原创文章,转载请注明原文地址:http://www.w2bc.com/Article/8233

  • 相关阅读:
    css实现导航栏切换动画
    ubuntu系统下mysql重置密码和修改密码操作
    Ubuntu16.04 安装配置nginx,实现多项目管理、负载均衡
    每天一点点之数据结构与算法
    vuex基本使用
    在 npm 中如何用好 registry
    django模板
    skywalking 通过python探针监控Python 微服务应用性能
    Centos7新加磁盘扩容根分区
    python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
  • 原文地址:https://www.cnblogs.com/liaohuolin/p/4021436.html
Copyright © 2011-2022 走看看