动画效果(二)

自定义动画

jQuery提供了几种简单常用的固定动画方法我们使用,但有些时候,这些简单动画无法满足我们更加复杂的需求,这个时候,jQuery提供了一个.animate()方法来创建我们的自定义动画,满足更多复杂多变的要求。

html代码如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>动画效果</title>
    <script type="text/javascript" src="jquery-1.12.3.js"></script>
    <script type="text/javascript" src="demo.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
    <input type="button" class="button" value="按钮" />
    <div id="box">
        box
    </div>
</body>
</html>

style.css代码:

#box {
    width: 100px;
    height: 100px;
    background: red;
    position: absolute;
}

jQuery代码:

$(".button").click(function() {
    $("#box").animate({
        width:"300px",
        height:‘200px‘,
        opacity:0.5,
        fontSize:"50px"
    });
});

注意:一个CSS变化就是一个动画效果,上面的例子中,已经有四个CSS变化,已经实现了多重动画同步运动的效果。

必传的参数只有一个,就是一个键值对CSS变化样式的对象。还有两个可选参数分别为速度和回调函数。

$(".button").click(function() {
    $("#box").animate({
        width:"300px",
        height:‘200px‘,
        opacity:0.5,
        fontSize:"50px"
    }, 2000, function() {
        alert("动画执行完毕哟!");
    });
});

到目前位置,我们都是创建的固定位置不动的动画,如果想要实现运动状态的位移动画,那就必须使用自定义动画,并且结合CSS的绝对定位功能。

$(".button").click(function() {
    $("#box").animate({
        left:"300px", //先必须设置CSS绝对定位
        top:"200px"
    },"slow");
});

自定义动画中,每次开始运动都必须是初始位置或初始状态,而有时我们想通过当前位置或状态下再进行动画,jQuery提供了自定义动画的累加、累减功能。

$(".button").click(function() {
    $("#box").animate({
        left:"+=100px"
    },"slow");
});

自定义实现列队动画的方式,有两种:

  1. 在回调函数中再执行一个动画
  2. 通过连缀或顺序来实现列队动画。

回调函数+列队动画(一定要细心,很容易写错):

    $(".button").click(function() {
        $("#box").animate({
            width:"300px"
        }, function() {
            $("#box").animate({
                height:"200px"
            }, function() {
                $("#box").animate({
                    opacity:0.5
                }, function() {
                    $("#box").animate({
                        fontSize:"50px"
                    });
                });
            });
        });
    });    

在同一个元素的基础上,使用连缀调用,可以实现队列动画:

$(".button").click(function() {
    $("#box").animate({width:"300px"})
             .animate({height:‘200px‘})
             .animate({opacity:0.5})
             .animate({fontSize:"50px"});
});

在同一个元素的基础上,使用顺序排列调用,可以实现队列动画:

$(".button").click(function() {
    $("#box").animate({width:"300px"});
    $("#box").animate({height:‘200px‘});
    $("#box").animate({opacity:0.5});
    $("#box").animate({fontSize:"50px"});
});

注意:如果不是同一个元素,就会实现同步动画。

时间: 2024-10-09 23:52:06

动画效果(二)的相关文章

数往知来 JQuery3_动画效果 &lt;二十三&gt;

一.节点替换 $('br').replaceWhith('<hr/>')  表示选取页面的所有br元素替换成<hr /> $('<hr />').replaceAll('br');  这是表示动态创建一个<hr />元素,然后用该元素替换页面上所有的br元素 2)节点包裹 $('p').wrap('<font color=red ></font>');  把每一个选中的P元素,外部都包裹一个font标签 $('p').wrapAll(

使用requestAnimationFrame做动画效果二

3月是个好日子,渐渐地开始忙起来了,我做事还是不够细心,加上感冒,没精神,今天差点又出事了,做过的事情还是要检查一遍才行,哎呀. 使用requestAnimationFrame做动画,我做了很久,终于在二月底完工了,中间绕了不少弯路,先把domo放出来: 要实行的功能显而易见,一开始我粗糙地不考虑性能,不使用requestAnimationFrame,已经做出来了,但是觉得不好,于是进行了进一步改进.采用对象的方法,先生成10个粉色的小方块,隐藏起来,然后利用requestAnimationFr

用SpriteBuilder简化&quot;耕牛遍地走&quot;的动画效果(二)

首先使用SpriteBuilder新建一个项目,将之前下载的资源文件夹拖入SpriteBuilder的文件视图. 这里我们只需要一步操作就可以完成原文中在Texture Packer中的那么多操作:即把BearImageHD文件夹设置为智能精灵表文件夹(Smart Sprite Sheet): 接下来在Xcode中打开对应的项目,将原文中放在init方法中的代码移至didLoadFromCCB方法中.init方法运行时机太早,不能满足要求.有时太快也不好,欲速则不达! 首先打开触摸: self.

Android分别通过代码和xml实现动画效果

一.Android动画类型 Android的animation由四种类型组成: XML中 alph 渐变透明度动画效果 scale 渐变尺寸伸缩动画效果 translate 画面转换位置移动动画效果 rotate 画面转移旋转动画效果 JavaCode中 AlphaAnimation 渐变透明度动画效果 ScaleAnimation 渐变尺寸伸缩动画效果 TranslateAnimation 画面转换位置移动动画效果 RotateAnimation 画面转移旋转动画效果 二.Android动画模

loading 动画效果(收藏起来以后留着慢慢用)

动画效果一: html代码: <div class="spinner">   <div class="rect1"></div>   <div class="rect2"></div>   <div class="rect3"></div>   <div class="rect4"></div>  

使用CSS3实现超炫的Loading(加载)动画效果

SpinKit 是一套网页动画效果,包含8种基于 CSS3 实现的很炫的加载动画.借助 CSS3 Animation 的强大功能来创建平滑,易于定制的动画.SpinKit 的目标不是提供一个每个浏览器都兼容的解决方案,而是给现代浏览器提供更优的技术实现方案和更佳的使用体验.(为保证最佳的效果,请在 Chrome.Firefox 和 Safari 等现代浏览器中浏览) Loading 动画效果一 HTML 代码: <div class="spinner"> <div c

使用 CSS3 实现超炫的 Loading(加载)动画效果

Loading 动画效果一 HTML 代码: 1 2 3 4 5 6 7 <div class="spinner">   <div class="rect1"></div>   <div class="rect2"></div>   <div class="rect3"></div>   <div class="rect4&qu

使用CSS3实现超炫的Loading(加载)动画效果(转)

使用CSS3实现超炫的Loading(加载)动画效果 SpinKit 是一套网页动画效果,包含8种基于 CSS3 实现的很炫的加载动画.借助 CSS3 Animation 的强大功能来创建平滑,易于定制的动画.SpinKit 的目标不是提供一个每个浏览器都兼容的解决方案,而是给现代浏览器提供更优的技术实现方案和更佳的使用体验.(为保证最佳的效果,请在 Chrome.Firefox 和 Safari 等现代浏览器中浏览) Loading 动画效果一 HTML 代码: 1 2 3 4 5 6 7 <

iOS播放器、Flutter高仿书旗小说、卡片动画、二维码扫码、菜单弹窗效果等源码

iOS精选源码 全网最详细购物车强势来袭 一款优雅易用的微型菜单弹窗(类似QQ和微信右上角弹窗) swift, UITableView的动态拖动重排CCPCellDragger 高仿书旗小说 Flutter版,支持iOS.Android NKAVPlayer 轻量级视频播放.控制,iOS AVPlayer RN 仿微信朋友圈 SwiftScan 二维码/条形码扫描.生成,仿微信.支付宝 Mac上解压Assets.car文件的小工具cartool tispr-card-stack - swift