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

案例实践:

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

 

JS代码:

(function(){
    // 定义变量
    var container = $(‘.container‘);                   //主容器
    var boxFront = $(‘.box-front‘);                    //卡片正面
    var mkLogo = $(‘.img-head‘);                       //卡片logo(火焰logo)
    var boxBack = $(‘.box-back‘);                      //卡片背面
    var boxBackImgs= $(‘.box-back‘).find(‘img‘);       //卡片背面中四幅图片

    // 自定义动画---进入
    $.Velocity.RegisterUI(‘mk.slideUp‘,{
        defaultDuration:500,
        calls:[
            [{opacity:[1,0],translateY:[0,100]}]
        ]
    });

    // 自定义动画---消失
    $.Velocity.RegisterUI(‘mk.slideDown‘,{
        defaultDuration:300,
        calls:[
            [{opacity:[0,1],translateY:[100,0]}]
        ]
    })

    // 自定义动画---图片弹性放大
    $.Velocity.RegisterUI(‘mk.scaleImg‘,{  //定义动画名称
        defaultDuration:500,
        calls:[
            [{opacity:[1,0],scale:[1,0]}]  //[1,0]表示[结束状态,开始状态]
        ]
    })
    // 自定义动画---图片弹性缩小
    $.Velocity.RegisterUI(‘mk.scaleImg02‘,{
        defaultDuration:500,
        calls:[
            [{opacity:[0,1],scale:[0,1]}]
        ]
    })

    // 定义正面进入序列
    var seqFront = [
        {
            elements:container,
            properties:‘mk.slideUp‘,
            options:{
                delay:300   // 设置延时
            }
        },
        {
            elements:boxFront,
            properties:‘mk.slideUp‘,
            options:{
                sequenceQueue:false // 设置队列形式为同时
            }
        },
        {
            elements:mkLogo,
            properties:‘mk.slideUp‘,
            options:{
                sequenceQueue:false,
                delay:60
            }
        }
    ];
    // 定义点击“进入”按钮正面消失的序列及背面出现的序列
    var btnClick = [
        {
            elements:container,
            properties:‘mk.slideDown‘
        },
        {
            elements:boxFront,
            properties:‘mk.slideDown‘,
            options:{
                sequenceQueue:false
            }
        },
        {
            elements:mkLogo,
            properties:‘mk.slideDown‘,
            options:{
                sequenceQueue:false
            }
        },{
            elements:container,
            properties:‘mk.slideUp‘,
            options:{
                delay:100
            }
        },{
            elements:boxBack,
            properties:‘mk.slideUp‘,
            options:{
                sequenceQueue:false
            }
        },{
            elements:boxBackImgs,
            properties:‘mk.scaleImg‘,
            options:{
                delay:60
            }
        }
    ];
    // 定义点击“关闭”按钮背面消失的序列和正面出现的序列
    var closeClick = [
        {
            elements:boxBackImgs,
            properties:‘mk.scaleImg02‘,
            options:{
                sequenceQueue:false
            }
        },
        {
            elements:container,
            properties:‘mk.slideDown‘
        },
        {
            elements:boxBack,
            properties:‘mk.slideDown‘,
            options:{
                sequenceQueue:false
            }
        },
        {
            elements:container,
            properties:‘mk.slideUp‘,
            options:{
                delay:200
            }
        },{
            elements:boxFront,
            properties:‘mk.slideUp‘,
            options:{
                sequenceQueue:false
            }
        },{
            elements:mkLogo,
            properties:‘mk.slideUp‘,
            options:{
                sequenceQueue:false
            }
        }
    ];

    // 初始化正面
    $.Velocity.RunSequence(seqFront);

    // 正面进入按钮点击事件
    $(‘.btn‘).on(‘click‘,function(){
        $.Velocity.RunSequence(btnClick);
    })

    // 背面关闭按钮点击事件
    $(‘.close‘).on(‘click‘,function(){
        $.Velocity.RunSequence(closeClick);
    })

})(jQuery)

HTML代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>动画案例</title>
    <link rel="stylesheet" href="exmple.css">
    <script src="js/jquery.js"></script>
    <script src="js/velocity.min.js"></script>
    <script src="js/velocity.ui.min.js"></script>
</head>
<body>
    <div class="container">
        <!-- 卡片正面 -->
        <div class="box-front">
            <img class="img-back" src="imgs/back.jpg" alt="">
            <img class="img-head" src="imgs/head.jpg" alt="">
            <div class="intro">
                <h3>慕课网</h3>
                <span>慕课网,只学有用的。</span>
                <a class="btn" href="##">点击进入</a>
            </div>
        </div>
        <!-- 卡片背面 -->
        <div class="box-back">
            <div class="close">x</div>
            <h3>慕课网</h3>
            <span>慕课网,只学有用的。</span>
            <img src="imgs/pic1.jpg" alt="">
            <img src="imgs/pic2.jpg" alt="">
            <img src="imgs/pic3.jpg" alt="">
            <img src="imgs/pic4.jpg" alt="">
        </div>
    </div>
    <script src="js/exmple.js"></script>
</body>
</html>

CSS样式:

*{ margin: 0; padding: 0; }
body{
    background-color: #333; overflow-y:hidden;
}
.container{
    width: 320px; height: 430px; background-color: #fff; margin: 60px auto;
    position: relative;
}
/*正面*/
.box-front{
    position: relative; z-index: 2;
}
.img-back{
    width: 320px; height: 213px;
}
.img-head{
    position: absolute; top: 213px; left: 50%; width: 90px; height: 90px; border-radius: 50%;
    margin-left: -45px; margin-top: -45px; border:2px solid #f0f0f0;
}
.intro{
    margin-top: 45px; text-align: center;
}
.intro h3{
    display: inline-block; width: 100%; margin-top: 5px;
}
.intro span{
    display: inline-block; width: 100%; margin-top: 15px;
}
.intro .btn{
    display: inline-block; width: 82%; color: #fff; background-color: #2444FF; padding: 10px;
    text-decoration: none; border-radius: 6px; margin-top: 40px; transition: background 1s;
    cursor: pointer;
}
.intro .btn:hover{
    background-color: #2468FF;
}

/*卡片背面样式*/
.box-back{
    position: absolute; left: 0; top: 0; width: 100%; height: 100%; color: #333; z-index: 1
}
.box-back .close{
    position: absolute; top: 10px; right: 10px; width: 10px; height: 10px; line-height: 10px;
    font-size: 18px; color:#999; cursor: pointer;
}
.box-back .close:hover{
    color: #f00;
}
.box-back h3{
    text-align: center; margin-top: 20px;  font-size: 24px;
}
.box-back span{
    display: block; text-align: center; font-size: 16px; margin: 10px 0 30px;
}
.box-back img{
    display: inline-block; margin: 0px 0px 12px 10px; width: 143px;
}
.container,.box-front,.img-head,.box-back,.box-back img{
    opacity: 0;
}

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

时间: 2024-10-03 21:41:29

jquery动画切换引擎插件 Velocity.js 学习02的相关文章

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.Firef

分享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

实用带多种CSS动画特效的jQuery弹出层插件hDialog.js

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <link rel=&qu

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

5月3日,Julian在其GitHub上发布了Velocity.js.Velocity.js是一款动画切换的jQuery插件,它重新实现了jQuery的$.animate()方法从而加快动画切换的速度.Velocity.js只有7k的大小,它不仅包含了$.animate()的所有功能,并且还包含了颜色切换.转换(transform).循环.缓动.CSS切换.Scroll功能,它是jQuery. jQuery UI.CSS变换 在动画方面的最佳组合.Velocity.js支持IE8+.Chrome

javascript动画:velocity.js学习

第二章:基础知识 一.velocity和jQuery: Velocity函数是独立于jQuery的,但两者可以结合使用.通常这么做的好处是可以利用jQuery的链式操作:当你先用jQuery选择了一个元素后,就可以用这个元素去调用.velocity()为它添加动画效果.例如: //将一个变量分配给某个jQuery元素对象. var $div = $(“div”); //使用velocity设置该元素的动画 $div.velocity({ opacity : 0 }); //该句语法与jQuery

jQuery全屏滚动插件fullPage.js使用中遇到的问题

1.fullPage.js是什么? fullPage.js 是一个基于 jQuery ,用来制作全屏网站的插件. 2.兼容性: - jquery兼容:兼容 jQuery 1.7+ - 浏览器兼容: IE8+,Chrome,FireFox 3.问题: 根据使用文档,轻松实现了全屏,但是当在某一屏中,内部的子元素中需要实现滑动的轮播效果,一开始,我就直接在$(document).ready()里面写方法,但是网页上除了按钮可以变色外,没有任何滑动效果.经过调试,发现按钮点击事件是进去了的,但就是感觉

学习 | jQuery全屏滚动插件FullPage.js

简介 fullPage.js是一个基于jQuery的全屏滚动插件,它能够很方便.很轻松的制作出全屏网站. 主要功能 支持鼠标滚动 支持前进后退和键盘控制 多个回调函数 支持手机.平板触摸事件 支持 CSS3 动画 支持窗口缩放 窗口缩放时自动调整 可设置滚动宽度.背景颜色.滚动速度.循环选项.回调.文本对齐方式 兼容性 fullPage.js 支持 IE8+ 及其他现代浏览器.测试代码 测试代码 <!DOCTYPE html> <html lang="en">

jQuery全屏滚动插件fullPage.js API

1.引入js: <link rel="stylesheet" href="css/jquery.fullPage.css"> <script src="js/jquery.min.js"></script> <!-- jquery.easings.min.js 是必须的,用于 easing 参数,也可以使用完整的 jQuery UI 代替 --> <script src="js/jq

jQuery全屏滚动插件fullPage.js演示

fullPage.js 是一个基于 jQuery 的插件,它能够很方便.很轻松的制作出全屏网站. 下载源码 参数 主要功能 支持鼠标滚动 支持前进后退和键盘控制 多个回调函数 支持手机.平板触摸事件 支持 CSS3 动画 支持窗口缩放 窗口缩放时自动调整 可设置滚动宽度.背景颜色.滚动速度.循环选项.回调.文本对齐方式等等 兼容性 fullPage.js 支持 IE8+ 及其他现代浏览器. 使用方法 1.引入文件 <link rel="stylesheet" href="