DIV CSS 佈局教程網

8.3 淡入和淡出
編輯:jQuery基礎知識     

在jQuery中,如果我們想要實現元素的淡入淡出這種漸變效果,有3組方法:

  • (1)fadeIn()和fadeOut();
  • (2)fadeToggle();
  • (3)fadeTo();

淡入和淡出效果,本質上其實都是通過改變元素的“透明度”(opacity屬性)來實現的。

一、fadeIn()和fadeOut()

在jQuery中,我們可以使用fadeIn()方法來實現元素的淡入效果,使用fadeOut()方法來實現元素的淡出效果。fadeIn()和fadeOut()這2個方法都是配合使用的。

語法:

 
$().fadeIn(speed , callback)
$().fadeOut(speed , callback)

說明:

speed為可選參數,表示動畫執行的速度,單位為毫秒,默認為200毫秒。如果speed參數省略,則采用默認速度。

callback為可選參數,表示動畫執行完成之後的回調函數。

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript" src="../App_js/jquery-1.12.0.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#btn_out").click(function () {
                $("img").fadeOut();
            });
            $("#btn_in").click(function () {
                $("img").fadeIn();
            });
        })
    </script>
</head>
<body>
    <img src="../App_images/lesson/run_jq/jquery.png" alt=""/><br />
    <input id="btn_out" type="button" value="淡出" />
    <input id="btn_in" type="button" value="淡入" />
</body>
</html>

在浏覽器預覽效果如下:

分析:

很多人會發現,淡入淡出效果跟“帶上速度”的顯示隱藏效果幾乎一模一樣!Yes ,you’re right!但是不要被浮華給蒙蔽了雙眼。這2組方法還是略有區別的。

  • (1)show()和hide(),是通過改變height、width、opacity來實現動畫的顯示與隱藏;
  • (2)fadeIn()和fadeOut(),只通過opacity來實現動畫的顯示與隱藏;

不過這2組方法在動畫顯示與隱藏完成之後,都會設置display:none或者display:block。

這2組方法它們在視覺上也有差別,例如hide()隱藏的效果是從下到上或從右下到左上慢慢折疊縮小,而fadeOut的淡出效果是整體淡化直至消失。

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript" src="../App_js/jquery-1.12.0.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#btn_hide").click(function () {
                $("#img1").hide(500);
            });
            $("#btn_show").click(function () {
                $("#img1").show(500);
            });
            $("#btn_out").click(function () {
                $("#img2").fadeOut();
            });
            $("#btn_in").click(function () {
                $("#img2").fadeIn();
            });
        })
    </script>
</head>
<body>
    <img id="img1" src="../App_images/lesson/run_jq/jquery.png" alt=""/><br />
    <input id="btn_hide" type="button" value="隱藏" />
    <input id="btn_show" type="button" value="顯示" /><br />
    <img id="img2" src="../App_images/lesson/run_jq/jquery.png" alt=""/><br />
    <input id="btn_out" type="button" value="淡出" />
    <input id="btn_in" type="button" value="淡入" />
</body>
</html>

在浏覽器預覽效果如下:

分析:

從這個例子,我們就可以很直觀地認識show()和hide()、fadeIn()和fadeOut()這2組方法的實際動畫效果的不同之處了。

二、fadeToggle()

在jQuery中,我們還可以使用fadeToggle()方法通過不透明度變化來切換匹配元素的“顯示狀態”。也就是說,如果元素是顯示狀態,則變成隱藏狀態;如果元素是隱藏狀態,則變成顯示狀態。fadeToggle()方法跟toggle()方法很相似,不過toggle()方法通過改變height、width、opacity來實現動畫的顯示與隱藏,而fadeToggle()只通過opacity來實現動畫的顯示與隱藏。

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript" src="../App_js/jquery-1.12.0.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("#btn_toggle").click(function () {
                $("#img1").toggle(500);
            });
            $("#btn_fade").click(function () {
                $("#img2").fadeToggle();
            });
        })
    </script>
</head>
<body>
    <img id="img1" src="../App_images/lesson/run_jq/jquery.png" alt=""/><br />
    <input id="btn_toggle" type="button" value="toggle()切換" /><br />
    <img id="img2" src="../App_images/lesson/run_jq/jquery.png" alt=""/><br />
    <input id="btn_fade" type="button" value="fadeToggle()切換" />
</body>
</html>

在浏覽器預覽效果如下:

三、fadeTo()

在jQuery中,fadeIn()和fadeOut()這2種方法都是通過改變元素的透明度來實現淡入淡出的動畫效果。其中在淡入效果中,透明度(opacity)從0.0變化到1.0;在淡出效果中,透明度(opacity)從1.0變化到0.0。

如果我們想要將元素透明度指定到某一個值,則可以使用fadeTo()方法。

語法:

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

說明:

speed為可選參數,表示動畫執行的速度,單位為毫秒,默認為500毫秒。如果speed參數省略,則采用默認速度。

opacity為必選參數,表示元素指定的透明度,取值范圍為0.0~1.0。

callback為可選參數,表示動畫執行完成之後的回調函數。

舉例:

在線測試
 
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript" src="../App_js/jquery-1.12.0.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $("img").hover(function () {
                $(this).fadeTo(200, 0.8);
            }, function () {
                $(this).fadeTo(200, 1.0);
            })
        })
    </script>
</head>
<body>
    <img src="../App_images/lesson/run_jq/jquery.png" alt=""/>
</body>
</html>

在浏覽器預覽效果如下:

分析:

這裡使用合成事件hover()來定義鼠標移入移出圖片時的顯示效果。當然對於這種顯示效果,我們同樣可以使用CSS來定義。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved