【心得2】09/21

今天開始進入類似相簿的設計,將多張圖片利用兩個按鈕控制上一張、下一張,總共經歷了好幾個階段,慢慢優化程式碼。

1.使用兩種function,設定兩個按鈕,讓圖片切換

2.改為使用一種function,button將網址貼在function1的()內,此時網址當作參數傳遞,設定變數x為「字串變數」,讓x儲存圖片1的網址,getElementById中的圖片語法用' '切割成'<img' src" ' + x + ' alt=" "'三段。

<button
    onclick="myFunction1('圖片1網址')">P U S H !</button>
<!-- 注意單引號 -->

<button onclick="myFunction1('圖片1網址')">
P U S H !</button>

<script>
    // 用x變數存起來"圖片1"
    function myFunction1(x) {
        document.getElementById("demo").innerHTML = 
        '<img src="' + x + ' " height=300px" alt="Seal">';
        // innerHTML:那段裡面替代
    }
</script>

3.使用array技巧,將兩張圖片網址設為陣列cars中的元素[0]跟[1],getElementById中的x改為cars[x]

<button onclick="myFunction1(0)">P U S H !</button>
<!-- 注意單引號 -->

<button onclick="myFunction1(1)">P U S H !</button>

<script>
    // 用x變數存起來"圖片1"
    function myFunction1(x) {
        var cars = ["圖片1網址"
                    "圖片2網址"];

        document.getElementById("demo").innerHTML = '<img src="' + cars[x] + 
        ' " height=300px" alt="Seal">';
    }
</script>

4.設置初始照片,將文字改圖片

<p id="demo">
    <img src="圖片1網址"
    height="300" alt="Seal">
</p>

當按下next按鍵時x為1;按下prev按鍵時x為-1

    <button onclick="myFunction1(-1)">Prev</button>
    <!-- 注意單引號 -->

    <button onclick="myFunction1(1)">Next</button>

由i=i+x控制動作為上一張或下一張,但若按超過範圍就會錯誤

*注意*若將var i = 0放在function中,生命週期即在變數執行時出現,結束後消失。(會無法進行前一張/下一張)

<script>
    var i = 0;
// 初始圖片停在0號圖片    
    function myFunction1(x) {
    var cars = ["圖1網址","圖2網址","圖3網址","圖4網址"];
    i = i + x;
    document.getElementById("demo").innerHTML = '<img src="' + cars[i] +
     ' " height=300px" alt="Seal">';
}
</script>

5.此版本修正了超過範圍的錯誤,使用了條件語法(if...else...)
if控制圖片為初始時再按「上一張」不會False,而是維持在第一張
else if 控制當圖片為最後一張時再按「下一張」不會False,而是維持在最後一張
i = i + x;
if (i < 0) {
    i = 0;
    }
else if (i == cars.length) {
    i = cars.length - 1;
    }


覺得今天利用平常想不到的邏輯思考,還開始使用了array這種型態的資料儲存方式,也開始培養更為細膩的心,才能發現一些設計上的錯誤,像是一開始設計完上一張、下一張不會想到第一張再往前或是最後一張往後就會False,希望之後能慢慢繼續進步,想出更有效率的程式寫法。

作業:https://jsfiddle.net/racoons5/71od2nhr/#&togetherjs=jVlV8DkB1a

留言

  1. 好想用array這種型態來存放魚貨 感覺好方便

    回覆刪除

張貼留言

這個網誌中的熱門文章

【心得12】12/14

【心得10】11/30

【心得11】12/06