1. 程式人生 > >教你一天玩轉JavaScript(三)——使用JavaScript完成圖片輪播的效果

教你一天玩轉JavaScript(三)——使用JavaScript完成圖片輪播的效果

本文教你如何使用JavaScript完成圖片的輪播,說是圖片的輪播,其實就是圖片的滾動而已,也沒什麼高深莫測的實質性的東西。要實現這個效果,須理解BOM(瀏覽器物件模型)中的Window物件的定時的操作:

  • 設定定時的方法
    這裡寫圖片描述
  • 清除定時的方法
    這裡寫圖片描述

現在我來寫一個小的Demo來稍微講一下Window物件設定定時的方法。例如有如下一個【Window物件的定時操作.html】頁面:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title
>
</title> <script> function setTime(){ window.setInterval("alert('aaa')", 5000); // 每隔5秒彈出一個對話方塊 } </script> </head> <body onload="setTime()"> </body> </html>

在Firefox瀏覽器上執行該頁面,則每隔5秒就會彈出一個對話方塊。再將該頁面改成:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script>
            function setTime(){
                window.setTimeout("alert('bbb')", 5000);
            }
        </script>
    </head>
    <body
onload="setTime()">
</body> </html>

在Firefox瀏覽器上執行該頁面,則隔5秒鐘彈出一個對話方塊之後就執行完畢了。下面我為大家提供一個【使用JS實現圖片滾動效果.html】頁面,內容如下:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>首頁</title>
        <style>
            #bodyDiv{
                border:1px solid blue;
                width:90%;
            }

            .logoDiv{
                border:1px solid blue;
                width:33%;
                float:left;
                height:50px;
            }

            .clear{
                clear:both;
            }

            #menuDiv{
                width:100%;
                height:50px;
                border:1px solid blue;
                background-color: black;
            }

            #imgDiv{
                width:100%;
                border:1px solid blue;
            }

            #menuDiv a{
                font-size: 20px;
                color: white;
            }
            .productClass{
                width:100%;
                border:1px solid blue;
            }
            .contentClass{
                width:100%;
                border:1px solid blue;
            }
            .contentClass font{
                font-size: 30px;
                color: black;

            }
        </style>
    </head>
    <body>
        <!-- 整體的DIV -->
        <div id="bodyDiv">
            <!-- logo的DIV -->
            <div>
                <div class="logoDiv">
                    <img src="../img/logo2.png" height="48">
                </div>
                <div class="logoDiv">
                    <img src="../img/header.png" height="48">
                </div>
                <div class="logoDiv">
                    <a href="">登入</a>
                    <a href="">註冊</a>
                    <a href="">購物車</a>
                </div>
                <div class="clear"></div>

            </div>  
            <!-- Menu的DIV -->
            <div id="menuDiv">
                <a href="">首頁</a>&nbsp;&nbsp;
                <a href="">電腦辦公</a>&nbsp;&nbsp;
                <a href="">手機數碼</a>&nbsp;&nbsp;
                <a href="">菸酒糖茶</a>&nbsp;&nbsp;
            </div>  
            <!-- 圖片滾動的DIV -->
            <div id="imgDiv">
                <img id="img1" src="../img/1.jpg" width="100%">
            </div>  
            <!-- 熱門商品的DIV -->
            <div class="productClass">
                <!-- 文字部分的DIV -->
                <div class="contentClass">
                    <font>熱門商品</font><img src="../img/title2.jpg">
                </div>
                <!-- 商品部分的DIV -->
                <div style="width:100%;border:1px solid blue;">
                    <div style="width:15%;height: 460px;border:1px solid blue;float:left;">
                        <img src="../img/big01.jpg" width="100%" height="100%">
                    </div>

                    <div style="width:84%;height: 460px;border:1px solid blue;float:left;">
                        <div>
                            <div style="border:1px solid blue;width:48%;float:left;height:228px;">
                                <img src="../img/middle01.jpg" width="100%" height="100%">
                            </div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                        </div>
                        <div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                        </div>
                    </div>
                </div>
            </div>  
            <!-- 廣告的DIV -->
            <div style="width:100%;border:1px solid blue;">
                 <img src="../img/ad.jpg" width="100%" height="80">
            </div>  
            <!-- 最新商品的DIV -->
            <div class="productClass">
                <!-- 文字部分的DIV -->
                <div class="contentClass">
                    <font>最新商品</font><img src="../img/title2.jpg">
                </div>
                <!-- 商品部分的DIV -->
                <div style="width:100%;border:1px solid blue;">
                    <div style="width:15%;height: 460px;border:1px solid blue;float:left;">
                        <img src="../img/big01.jpg" width="100%" height="100%">
                    </div>

                    <div style="width:84%;height: 460px;border:1px solid blue;float:left;">
                        <div>
                            <div style="border:1px solid blue;width:48%;float:left;height:228px;">
                                <img src="../img/middle01.jpg" width="100%" height="100%">
                            </div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                        </div>
                        <div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                            <div style="border:1px solid blue;width:16%;float:left;height:228px;">
                                <img src="../img/small03.jpg">
                            </div>
                        </div>
                    </div>
                </div>
            </div>  
            <!-- 頁尾的DIV -->
            <div  style="width:100%;border:1px solid blue;">
                <img src="../img/footer.jpg" width="100%">
            </div>  
            <!-- 友情連結及版權的DIV -->
            <div style="width:100%;border:1px solid blue;">
                <center>
                    關於我們 聯絡我們 招賢納士 法律宣告 友情連結 支付方式 配送方式 服務宣告 廣告宣告 <br/>
                    Copyright © 2005-2016 傳智商城 版權所有 
                </center>
            </div>  
        </div>
    </body>
</html>

找到圖片滾動的div:

<div id="imgDiv">
    <img id="img1" src="../img/1.jpg" width="100%">
</div>

給大家看一眼,接下來主要就是圍繞該div按照如下步驟進行講解:

  1. 當頁面載入的時候開始計時,並使用onload事件。
  2. 編寫onload事件觸發的函式。
  3. 獲得操作圖片的控制權。
  4. 修改圖片的src的屬性。

如此一來,完成圖片輪播的效果的JavaScript程式碼為:

<script>
    // 當視窗被載入時就觸發一個函式
    window.onload = function() {
        // 設定定時
        window.setInterval("changeImg()", 5000);
    }
    var i = 1;
    function changeImg(){
        // alert("aaaa");
        i++;
        // 獲得圖片的控制權
        if(i > 3){
            i=1;
        }
        var img1 = document.getElementById("img1");
        img1.src="../img/" + i + ".jpg";
    }
</script>