JQUERY 基础教程
JQUERY 效果
JQUERY 操纵
JQUERY 高级教程
JQUERY 示例
JQUERY 参考资料

jQuery 动画 效果

在本教程中,您将学习如何使用 jQuery 为 CSS 属性设置动画。

jQuery animate() 方法

jQuery animate() 方法用于创建自定义动画。 animate() 方法通常用于为数字 CSS 属性设置动画,例如 width, height, margin, padding, opacity, top, left 等,但非数字属性(例如 color or background-color)不能使用基本的 jQuery 功能进行动画处理。

注意: 并非所有 CSS 属性都是可动画的。 通常,任何接受数字、长度、百分比或颜色值的 CSS 属性都是可动画的。 但是,核心 jQuery 库不支持彩色动画。 要操纵颜色并为其设置动画,请使用 jQuery 颜色插件

语法

jQuery animate() 方法的基本语法可以通过以下方式给出:

$(selector).animate({ properties }, duration, callback);

animate() 方法的参数含义如下:

  • 必需的属性参数定义要动画的 CSS 属性
  • 可选的持续时间参数指定动画将运行多长时间。 持续时间可以使用预定义字符串 'slow''fast' 之一指定,也可以以毫秒为单位; 较高的值表示较慢的动画。
  • 可选的 callback 参数是动画完成后调用的函数。

这是 jQuery animate() 方法的一个简单示例,该方法在单击按钮时将图像从其原始位置向右移动 300 像素。

<script>
$(document).ready(function(){
    $("button").click(function(){
        $("img").animate({
            left: 300
        });
    });
});
</script>

注意: 默认情况下,所有 HTML 元素都有静态位置。 由于静态元素无法移动,因此您必须将元素的 CSS position 属性设置为 relative, fixed, 或 absolute 以操纵或动画其位置。


一次为多个属性设置动画

您还可以使用 animate() 方法同时对元素的多个属性进行动画处理。 所有属性同时动画,没有任何延迟。

<script>
$(document).ready(function(){
    $("button").click(function(){
        $(".box").animate({
            width: "300px",
            height: "300px",
            marginLeft: "150px",
            borderWidth: "10px",
            opacity: 0.5
        });
    });
});
</script>

注意:animate() 方法一起使用时,CSS 属性 名称必须为驼峰式,例如 如果要为字体大小设置动画,则需要编写 'fontSize' 而不是 'font-size'。 同样,写 'marginLeft' 而不是 'margin-left', 'borderWidth' 而不是 'border-width',以此类推。

提示:您必须先设置元素的 border-style 属性,然后才能为其 border-width 属性设置动画。 一个元素必须有边框才能为边框宽度设置动画,因为 border-style 属性的默认值为 none


一个一个地动画多个属性或排队动画

您还可以使用 jQuery 的链接功能在队列中一个一个地为一个元素的多个属性设置动画。 我们将在下一章了解更多关于链式的知识。

下面的示例演示了一个 jQuery 队列或链式动画,其中每个动画将在元素上的前一个动画完成后开始。

<script>
$(document).ready(function(){
    $("button").click(function(){
        $(".box")
            .animate({width: "300px"})
            .animate({height: "300px"})
            .animate({marginLeft: "150px"})
            .animate({borderWidth: "10px"})
            .animate({opacity: 0.5});
    });
});
</script>

具有相对值的动画属性

您还可以定义动画属性的相对值。 如果使用前导 +=-= 前缀指定值,则通过从属性的当前值加上或减去给定数字来计算目标值。

<script>
$(document).ready(function(){
    $("button").click(function(){
        $(".box").animate({            
            top: "+=50px",
            left: "+=50px",
            width: "+=50px",
            height: "+=50px"
        });
    });
});
</script>

使用预定义值对属性进行动画处理

除了数值之外,每个属性都可以采用字符串 'show', 'hide', 和 'toggle'。 当您只想将属性从其当前值设置为初始值(反之亦然)时,这将非常有用。

<script>
$(document).ready(function(){
    $("button").click(function(){
        $(".box").animate({
            width: 'toggle'
        });
    });
});
</script>
Advertisements