jQuery 淡化效果

在本教程中,你将学习如何使用 jQuery 淡入淡出元素。

jQuery fadeIn()fadeOut() 方法

你可以使用 jQuery fadeIn()fadeOut() 方法通过逐渐增加或减少其不透明度来显示或隐藏 HTML 元素。

<script type="text/javascript">
$(document).ready(function(){
    // Fading out displayed paragraphs
    $(".out-btn").click(function(){
        $("p").fadeOut();
    });
    
    // Fading in hidden paragraphs
    $(".in-btn").click(function(){
        $("p").fadeIn();
    });
});
</script>

与其他 jQuery 效果方法一样,你可以选择指定 fadeIn()fadeOut() 方法的持续时间或速度参数来控制淡入淡出动画的运行时间。可以使用预定义的字符串之一 'slow' 或者 'fast' 以毫秒为单位指定持续时间 ; 值越高表示动画越慢。

<script type="text/javascript">
$(document).ready(function(){
    // Fading out displayed paragraphs with different speeds
    $(".out-btn").click(function(){
        $("p.normal").fadeOut();
        $("p.fast").fadeOut("fast");
        $("p.slow").fadeOut("slow");
        $("p.very-fast").fadeOut(50);
        $("p.very-slow").fadeOut(2000);
    });
    
    // Fading in hidden paragraphs with different speeds
    $(".in-btn").click(function(){
        $("p.normal").fadeIn();
        $("p.fast").fadeIn("fast");
        $("p.slow").fadeIn("slow");
        $("p.very-fast").fadeIn(50);
        $("p.very-slow").fadeIn(2000);
    });
});
</script>

注意: fadeIn() / fadeOut() 方法的效果类似于 show() / hide() ,但与 show() / hide() 方法不同, fadeIn() / fadeOut() 方法仅动画目标元素的不透明度,并且不会为其尺寸设置动画。

你还可以指定在 fadeIn()fadeOut() 方法完成后执行的回调函数。我们将在后续章节中详细了解回调函数。

<script type="text/javascript">
$(document).ready(function(){
    // Display alert message after fading out paragraphs
    $(".out-btn").click(function(){
        $("p").fadeOut("slow", function(){
            // Code to be executed
            alert("The fade-out effect is completed.");
        });
    });
    
    // Display alert message after fading in paragraphs
    $(".in-btn").click(function(){
        $("p").fadeIn("slow", function(){
            // Code to be executed
            alert("The fade-in effect is completed.");
        });
    });
});
</script>

jQuery fadeToggle() 方法

jQuery fadeToggle() 方法通过设置不透明度来显示或隐藏所选元素,使得如果元素最初显示,它将淡出; 如果隐藏,它将淡入(即切换褪色效果)。

<script type="text/javascript">
$(document).ready(function(){
    // Toggles paragraphs display with fading
    $(".toggle-btn").click(function(){
        $("p").fadeToggle();
    });
});
</script>

同样,你可以指定方法的 duration 参数, fadeToggle()fadeIn() / fadeOut() 方法,以控制淡入淡出切换动画的持续时间或速度。

<script type="text/javascript">
$(document).ready(function(){
    // Fade Toggles paragraphs with different speeds
    $(".toggle-btn").click(function(){
        $("p.normal").fadeToggle();
        $("p.fast").fadeToggle("fast");
        $("p.slow").fadeToggle("slow");
        $("p.very-fast").fadeToggle(50);
        $("p.very-slow").fadeToggle(2000);
    });
});
</script>

同样,你也可以为方法指定回调函数 fadeToggle()

<script type="text/javascript">
$(document).ready(function(){
    // Display alert message after fade toggling paragraphs
    $(".toggle-btn").click(function(){
        $("p").fadeToggle(1000, function(){
            // Code to be executed
            alert("The fade-toggle effect is completed.");
        });
    });
});
</script>

jQuery fadeTo() 方法

jQuery fadeTo() 方法与 .fadeIn() 方法类似,但与 .fadeIn() 方法不同, fadeTo() 可以将元素淡入某个不透明度级别。

$(selector).fadeTo(speed, opacity, callback); 

必需的 opacity 参数指定目标元素的最终不透明度,可以是介于 0 和 1 之间的数字。此方法还需要 duration 或 speed 参数,用于指定淡入淡出动画的持续时间。

<script type="text/javascript">
$(document).ready(function(){
    // Fade to paragraphs with different opacity
    $(".to-btn").click(function(){
        $("p.none").fadeTo("fast", 0);
        $("p.partial").fadeTo("slow", 0.5);
        $("p.complete").fadeTo(2000, 1);
    });
});
</script>