jQuery animate() 方法

  • 定义和用法

    animate() 方法执行 CSS 属性集的自定义动画。
    该方法通过 CSS 样式将元素从一个状态改变为另一个状态。CSS属性值是逐渐改变的,这样就可以创建动画效果。
    只有数字值可创建动画(比如 "margin:30px")。字符串值无法创建动画(比如 "background-color:red")。
    提示:请使用 "+=" 或 "-=" 来创建相对动画。
  • 语法

    $(selector).animate({styles},speed,easing,callback)
  • 参数

    参数 必需的 描述
    styles
    规定产生动画效果的一个或多个 CSS 属性/值。
    注意:当与 animate() 方法一起使用时,该属性名称必须是驼峰写法: 您必须使用 paddingLeft 代替 padding-left,marginRight 代替 margin-right,依此类推。
    可以应用动画的属性:
    提示:颜色动画不包含在核心 jQuery 库中。如果您想要应用动画颜色,您需要从 jQuery.com 下载 颜色动画插件
    speed
    规定动画的速度。
    可能的值:
    • 毫秒
    • "slow"
    • "fast"
    easing
    规定在动画的不同点中元素的速度。默认值是 "swing"。
    可能的值:
    • "swing" - 在开头/结尾移动慢,在中间移动快
    • "linear" - 匀速移动
    提示:扩展插件中提供更多可用的 easing 函数。
    callback
    animate 函数执行完之后,要执行的函数。
    如需学习更多有关 callback 的内容,请访问我们的 jQuery Callback 这一章。
  • Alternate语法

    $(selector).animate({styles},{options})
    参数 必需的 描述
    styles
    规定产生动画效果的一个或多个 CSS 属性/值(同上表)。
    options
    规定动画的额外选项。
    可能的值:
    • speed - 设置动画的速度
    • easing - 规定要使用的 easing 函数
    • callback - 规定动画完成之后要执行的函数
    • step - 规定动画的每一步完成之后要执行的函数
    • queue - 布尔值。指示是否在效果队列中放置动画。如果为 false,则动画将立即开始。
    • specialEasing - 来自 styles 参数的一个或多个 CSS 属性的映射,以及它们的对应 easing 函数
  • 实例

    下例演示了animate()方法的简单用法; 它将<div>元素向右移动,直到它达到250px的left属性:
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>欢迎来到菜鸟教程</title>
    //此版本是百度cdn 1.11.1,当然你可以使用更高的版本,从2.0版本以上的是不支持ie6-8的
    <script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
    <script>
         $(document).ready(function () {
           $("button").click(function(){
              $("div").animate({left: '250px'});
           });
         });
    </script>
    </head>
    <body>
              <button>开始动画</button>    
              <p>默认情况下,所有的 HTML 元素有一个静态的位置,且是不可移动的。 
              如果需要改变为,我们需要将元素的 position 属性设置为 relative, fixed, 或 absolute!</p>
              <div style="background:#009688;height:100px;width:100px;position:absolute;"></div>      
    </body>
    </html>
    
    尝试一下