最近在学习jQuery,看到一个很有意思的函数animate(),但是在网上却没有查到相关的详细资料,于是打算参考jQuery API,自己总结一下。

概述

animate() 方法执行 CSS 属性集的自定义动画。该方法通过CSS样式将元素从一个状态改变为另一个状态。CSS属性值是逐渐改变的,这样就可以创建动画效果。

用法一

$(selector).animate({styles},speed,easing,callback) //创建自定义动画

styles: 必需,定义形成动画的css属性。需要使用驼峰法书写所有的属性名,如paddingLeft而不是padding-left。也可以定义相对值,即相对于元素当前值做改变。需要在指的前面加上 +=或者-=。还可以使用预定义值,属性的动画值设置为 show/hide/toggle。

speed: 可选,定义效果的时长。可取值slow、normal(默认)、fast 或者毫秒数。

easiing: 可选,定义在不同动画点中设置动画速度。内置的easing函数有:swing(缓冲,默认值)、linear(匀速),可通过js文件扩展。

callback:可选,定义在动画完成后所执行的函数名称。

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>自定义动画animate()</title>
<script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
</head>
<script type="text/javascript">
$(document).ready(function(){
$('button').click(function(){
$('div').animate({
height:"300px",
width:"+=100px", // 相对值
//:"width":"hide" //预定义值
},
"slow",
"linear",
function(){
alert("高度为:"+ $("div").height())
});
});
}) </script> <body>
<button>开始动画</button>
<!-- 默认所有的HTML 元素都有一个静态位置,且无法移动。如需要对位置进行操作,要先把元素的position属性 -->
<div style="background:red;height:100px;width:100px;position:absolute;">
</div> </body>
</html>

用法二

$(selector).animate({styles},{options})

styles: 必需,定义形成动画的css属性。用法同上

optins: 可选,定义动画的额外选项。

  可能的值有:

    speed:设置动画的速度。

    easing:定义要使用的easing函数。

    callback:定义动画完成后要执行的函数。

    step:定义动画的每一步完成后要执行的函数。

    queue:布尔值,指示是否在效果队列中放置动画。如果为false,则动画将立即开始。

    specialEasing:定义styles参数的一个或多个 CSS 属性的映射,以及他们对应的 easing 函数。

其他几个与上面的用法类似,主要来看看 step 和 queue 。

默认地,jQuery 提供针对动画的队列功能。这意味着如果编写多个 animate() 调用,jQuery 会创建包含这些方法调用的“内部”队列。然后逐一运行这些 animate 调用。

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>自定义动画animate()</title>
<script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js"></script>
</head>
<style type="text/css">
div {
background-color: #bca;
width: 200px;
height: 1.1em;
text-align: center;
border: 2px solid green;
margin: 3px;
font-size: 14px;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
$('#first').click(function(){
// 默认地,动画会依次执行
$('#div1').animate({height:"200px"})
.animate({width:"+=100px"},"slow")
.animate({fontSize:"50px"},"slow");
});
$('#second').click(function(){
// 第一个动画不在队列中,则前两个一起执行
$('#div2').animate({height:"200px"},{queue:false})
.animate({width:"+=100px"},"slow")
.animate({fontSize:"50px"},"slow");
});
});
</script> <body>
<button id="first">div1</button>
<button id="second">div2</button>
<div id="div1">div1</div>
<div id="div2">div2</div>
</body>
</html>

未完待续。。。

jQuery之animate()用法的更多相关文章

  1. jQuery中Animate进阶用法(一)

    jQuery中animate的用法你了解多少呢?如果仅仅是简单的移动位置,显示隐藏,哦!天哪你在浪费资源!因为animate太强大了,你可以有很多意想不到的用法!让我们一起研究一下吧~~ 首先要了解j ...

  2. jQuery中animate()方法用法实例

    本文实例讲述了jQuery中animate()方法用法.分享给大家供大家参考.具体分析如下: 此方法用于创建自定义动画,并且能够规定动画执行时长.擦除效果.动画完成后还可以地触发一个回调函数. ani ...

  3. Jquery remove 高级用法

    Jquery remove 高级用法 html 代码 <div class="file-image">abc1111</div><div class= ...

  4. jquery.cookie.js 用法

    jquery.cookie.js 用法   一个轻量级的cookie 插件,可以读取.写入.删除 cookie. jquery.cookie.js 的配置 首先包含jQuery的库文件,在后面包含 j ...

  5. jQuery $.post $.ajax用法

    jQuery $.post $.ajax用法 jQuery.post( url, [data], [callback], [type] ) :使用POST方式来进行异步请求 参数: url (Stri ...

  6. jQuery包裹节点用法完整示例

    本文实例讲述了jQuery包裹节点用法.分享给大家供大家参考,具体如下: <html> <head> <meta http-equiv="Content-Typ ...

  7. jQuery的animate方法在IE8下出现小问题

    今天修改网站的bug,把网页显示的几张图片给做成左右滑动的动画效果: 由于本身有一个demo可供参考,然后在此基础上进行修改,所以很快就搞定了,然后在chrome,firefox,IE9下分别进行测试 ...

  8. jQuery的animate在火狐浏览器上不支持backgroundPositionX的解决方法

    在网上找的ffSupp.js文件 /** * 自定义backgroundPosition的animate,支持火狐,jQuery1.8以上版本 * @author Meleong * v1.00 */ ...

  9. jQuery中animate动画第二次点击事件没反应

    jQuery中animate动画第二次点击事件没反应 用animate做点击翻页动画时发现第二次点击事件动画没反应,而第一次点击有动画效果,代码如下: 复制代码 代码如下: $(".page ...

随机推荐

  1. Java 字符编码(一)Unicode 字符编码

    Java 字符编码(一)Unicode 字符编码 Unicode(http://www.unicode.org/versions/#TUS_Latest_Version) 是一个编码方案,说白了希望给 ...

  2. WinForm DotNetBar 动态添加DataGridView

    DataGridView dgv = new DataGridView(); dgv.Dock = DockStyle.Fill; dgv.Location = new System.Drawing. ...

  3. Reveal Cards In Increasing Order LT950

    In a deck of cards, every card has a unique integer.  You can order the deck in any order you want. ...

  4. eclipse配置逆向工程

    eclipse单行注释:ctrl + shfit + c   或者   Ctrl+/:    添加//注释 快速查找某个类:Ctrl+Shift +T   查找这个类的子类是ctrl+t eclips ...

  5. python 练习2

    购物订单系统: #!usr/bin/env python # encoding: utf-8 import sys i = 0 inventory_dic = {'Car':1000,'SUV':50 ...

  6. git学习笔记:常用命令总结

    本文根据廖雪峰的博客,记录下自己的学习笔记.主要记录常用的命令,包括仓库初始化.添加文件.提交修改.新建分支.内容暂存.分支管理.标签管理等内容. git是分布式版本控制系统. 首先是安装,从官网下载 ...

  7. javascript、JSP、JS有什么区别和联系

    js是javascript的缩写.以下是JSP与JS的区别和联系: 名字:JS:JavaScriptJSP:Java Server Pages 执行过程:JSP先翻译,翻译成Servlet执行如: t ...

  8. web安全系列4:google语法

    这是web安全的第四篇,欢迎翻看前面几篇. 前面我们介绍了一些和HTTP有关知识,那么一个疑问就是黑客要做的第一件是什么?其实很简单,确定一个目标,然后搜集信息. 这很容易理解,我们无论做什么都得先有 ...

  9. Nginx服务器中配置非80端口的端口转发方法详解

    这篇文章主要介绍了Nginx服务器中配置非80端口的端口转发方法详解,文中使用到了Nginx中的proxy_pass配置项,需要的朋友可以参考下 nginx可以很方便的配置成反向代理服务器: 1 2 ...

  10. Linux学习---自定义数据类型

    struct   结构体 (地址递增) eg:struct myabc{ unsigned int a; unsigned int b; unsigned int c; unsigned int d; ...