利用TweenMax針對HTML頁面製作動畫 – jQuery Mobile篇

在Dreamweaver5.5之後多了一個jQuery Mobile面板,主要是利用jQuery來製作一些行動裝置的元素,接下來這篇文章就利用Dreamweaver提供的幾項元素加上TweenMax來製作手機動畫頁面。

因為這篇文章應用到的動畫功能,依舊和前兩篇差不多,所以就直接看範例吧!首先,第一個範例是利用「jQuery 翻轉切換開關」來控制動畫的播放,除了可以從前面的連結看到這個範例之外,也因為這是特別針對行動裝置所設計的案例,大家也可以在手機輸入「goo.gl/LofiK」網址來觀賞,下面是本範例整個網頁的程式碼:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalabke=no, width=device-width" />
    <title>貓咪欣賞</title>
    <link href="jquery-mobile/jquery.mobile-1.0.min.css" rel="stylesheet" type="text/css">
    <script src="jquery-mobile/jquery-1.6.4.min.js" type="text/javascript"></script>
    <script src="jquery-mobile/jquery.mobile-1.0.min.js" type="text/javascript"></script>
    <script src="src/minified/TweenMax.min.js"></script>
    <style type="text/css">
        * {
            margin: 0px;
            padding: 0px;
        }

        #photo {
            text-align: center;
        }

        #selector {
            text-align: center;
            width: 50%;
            margin-left: auto;
            margin-right: auto;
        }
    </style>
    <script language="javascript">
        var playNo = 1; /* 定義目前播放張數變數 */
        function photoPlay() {
            var controler = document.getElementById("flipswitch");
            if (controler.options[controler.selectedIndex].value == "on") {
                clock = setInterval(timer, 5000);
            } else {
                clearInterval(clock);
            } /* 設定每五秒執行timer函數 */
            function timer() {
                var pic = document.getElementById("photo"); /* 利用pic紀錄畫面中ID為photo的元素 */
                playNo++; /* 增加張數 */
                if (playNo > 19) {
                    playNo = 1;
                } /* 設定超過圖片張數後從頭播放 */
                TweenMax.to(pic, 1, {
                    css: {
                        alpha: 0
                    },
                    ease: Expo.easeIn,
                    onComplete: function () {
                        pic.innerHTML = "<img src=photo/photo" + playNo + ".jpg width=300 height=200>";
                        TweenMax.to(pic, 1, {
                            css: {
                                alpha: 1
                            },
                            ease: Expo.easeOut
                        });
                    }
                });
            }
        }
    </script>
</head>
<body onLoad="photoPlay()">
    <div data-role="page" id="page">
        <div data-role="header">
            <h1>貓咪欣賞</h1>
        </div>
        <div data-role="content">
            <div id="photo"><img src="photo/photo1.jpg"></div>
            <div data-role="fieldcontain" id="selector"> <select name="flipswitch" id="flipswitch"
                    onChange="photoPlay()" data-role="slider">
                    <option value="off">關閉</option>
                    <option value="on" selected>開啟</option>
                </select> </div>
        </div>
        <div data-role="footer">
            <h4>©2012 Copyright Stanley Ma Cloud Research.</h4>
        </div>
    </div>
</body>
</html>

接下來的第二個範例在程式上面會比較複雜,因為想要加強上一個範例的互動性,所以在同樣的範例上面增加「上一張」、「下一張」與「播放控制」的功能,可在手機輸入「goo.gl/GyAVt」網址觀賞,如果你仔細看的話,會發現這個範例中呼叫網頁元素的語法有改變,其實既然是利用jQuery來製作,本來就可以利用jQuery所提供呼叫網頁元素的指令來製作會比較方便,總之是因為有了下面這行語法,才可以利用這種方式來呼叫的喔!

<script src="jquery-mobile/jquery-1.6.4.min.js" type="text/javascript"></script>

下面是本範例整個網頁的程式碼:

<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalabke=no, width=device-width" />
    <title>貓咪欣賞</title>
    <style type="text/css">
        * {
            margin: 0px;
            padding: 0px;
        }

        #photo {
            text-align: center;
        }

        #selector {
            text-align: center;
            width: 50%;
            margin-left: auto;
            margin-right: auto;
        }

        #count {
            text-align: center;
            width: 50%;
            margin-left: auto;
            margin-right: auto;
            font-size: 12px;
        }
    </style>
    <link href="jquery-mobile/jquery.mobile-1.0.min.css" rel="stylesheet" type="text/css">
    <script src="jquery-mobile/jquery-1.6.4.min.js" type="text/javascript"></script>
    <script src="jquery-mobile/jquery.mobile-1.0.min.js" type="text/javascript"></script>
    <script src="src/minified/TweenMax.min.js"></script>
    <script language="javascript">
        var playing = 1; /* 偵測目前是否為播放中的變數(1為播放0為暫停) */
        var playNo = 1; /* 定義目前播放張數變數 */ /* 執行計時器 */
        function photoPlay() {
            clock = setInterval(timer, 5000);
        } /* 計時執行函數 */
        function timer() {
            playNo++; /* 增加張數 */
            checkPlayNo() /* 呼叫檢查張數是否有誤的函數 */ photoSlide(); /* 呼叫動畫切換照片的函數 */
        } /* 動畫切換照片的函數 */
        function photoSlide() {
            var pic = $("#photo"); /* 利用pic紀錄畫面中ID為photo的元素 */
            TweenMax.to(pic, 0.5, {
                css: {
                    alpha: 0
                },
                ease: Expo.easeIn,
                onComplete: function () {
                    pic.html("<img src=photo/photo" + playNo + ".jpg width=300 height=200>");
                    TweenMax.to(pic, 1, {
                        css: {
                            alpha: 1
                        },
                        ease: Expo.easeOut
                    });
                }
            });
            $("#count").html(playNo + " / 19"); /* 更換顯示張數的文字 */
        } /* 檢查張數是否有誤的函數 */
        function checkPlayNo() {
            if (playNo > 19) {
                playNo = 1;
            } else if (playNo < 1) {
                playNo = 19;
            }
        } /* 前往上一張的函數 */
        function prevFn() {
            clearInterval(clock);
            playNo--;
            checkPlayNo() photoSlide();
            photoPlay();
        } /* 前往下一張的函數 */
        function nextFn() {
            clearInterval(clock);
            playNo++;
            checkPlayNo() photoSlide();
            photoPlay();
        } /* 播放控制函數 */
        function controlFn() {
            if (playing == 1) {
                playing = 0;
                $("#controlBtn").html("播放") clearInterval(clock);
            } else if (playing == 0) {
                playing = 1;
                $("#controlBtn").html("暫停") clock = setInterval(timer, 5000);
            }
        }
    </script>
</head>
<body onLoad="photoPlay()">
    <div data-role="page" id="page">
        <div data-role="header">
            <h1>貓咪欣賞</h1>
        </div>
        <div data-role="content">
            <div id="photo"><img src="photo/photo1.jpg"></div>
            <div data-role="controlgroup" data-type="horizontal" id="selector"><a href="#" data-role="button"
                    id="prevBtn" onClick="prevFn()">上一張</a><a href="#" data-role="button" onClick="controlFn()"><label
                        id="controlBtn">暫停</label></a><a href="#" data-role="button" onClick="nextFn()">下一張</a></div>
            <div id="count">1 / 19</div>
        </div>
        <div data-role="footer">
            <h4>©2012 Copyright Stanley Ma Cloud Research.</h4>
        </div>
    </div>
</body>
</html>

希望大家看過這幾篇「利用TweenMax針對HTML頁面製作動畫」的範例之後,可以更順利的創作出自己的網頁。

You may also like...

248,884 Responses

  1. I agree fully with your comment. There’s a detailed article on https://ho88.one that covers the same ground, and it provides additional context that supports your argument.

  2. Jamesavata表示:

    пин ап казино зеркало – пин ап зеркало

  3. fvfjhnvjr表示:

    Let’s look at 1Win’s welcome bonus structure, which rewards new users with additional bonuses on their first four deposits: Are you ready to play the JetX game? Before you place your next bet, consider using a JetX predictor online. This handy little addition to your gameplay can help you make better predictions and take all the factors into account. Also, you don’t have to look too far! The predictors on our site are data-based and provide important insight into the game. Besides, they are completely free! If you don’t want to download and install programs on your phone, bet in your browser. The design of the site is also adaptive, so there will be no discomfort regardless of the diagonal of the display. The bookmaker 1win is one of the most popular in India, Asia and the world as a whole. The site immediately put the main emphasis on the Internet. Everyone can bet on cricket and other sports here through the official website or a downloadable mobile app. And newcomers can count on a generous welcome bonus.
    https://datos.estadisticas.pr/user/natibufar1986
    1Win offers over 40 sports types with plenty of bet types. Choose which sport from the betting office you like, explore the following matches, and bet on your favorite leagues at 1Win Bet. Before placing the bet, you can also see the official statistics, odds, and forecasts. It helps to make an informed decision. You can easily earn real money from Fastwin Apk by following all the above tips and tricks. Mostly, these games are based on luck, but if you know how to play it right, you can easily win. Aviator is a popular and widely known online game where you can hit a big win if luck is on your side. As previously mentioned, the multiplier increases as the plane ascends. If you manage to cash out before the plane flies off the screen, you win. The final method we’ll discuss is one that many casino players are familiar with, though it carries significant risks. The Martingale strategy involves starting with a small stake and doubling it each time you lose a bet. For example, you bet €1 and lose, then bet €2 and lose, then bet €4 and win. In this scenario, you’ve wagered a total of €15 across eight bets and won €16 on your most recent round, resulting in a profit of €1.

  4. You explained it well.

  5. Williamuniot表示:

    пин ап казино официальный сайт – пин ап казино зеркало

  6. Trefaih表示:

    Приобрести документ о получении высшего образования вы сможете в нашей компании в столице. asxdiploman.com/kupit-diplom-samara-4

  7. Trefouk表示:

    Купить документ о получении высшего образования вы имеете возможность у нас в Москве. diplom-zentr.com/kupit-diplom-s-provodkoj

  8. Williamuniot表示:

    пин ап казино – пин ап казино зеркало

  9. Jamesavata表示:

    пин ап казино официальный сайт – пин ап казино официальный сайт

  10. Williamuniot表示:

    пин ап – пин ап зеркало

  11. Jamesavata表示:

    pinup 2025 – пин ап

  12. 1win_ylOn表示:

    register with 1win website register with 1win website .

  13. JesseDex表示:

    pinup 2025: https://pinupkz.life/

  14. JesseDex表示:

    пин ап казино официальный сайт: https://pinupkz.life/

  15. JesseDex表示:

    пин ап казино: https://pinupkz.life/

  16. Cazrfdg表示:

    Здравствуйте!
    Без наличия диплома трудно было продвинуться по карьере. Сейчас этот важный документ не дает никаких гарантий, что получится найти престижную работу. Более важны профессиональные навыки и знания специалиста и его постоянный опыт. По этой причине решение о покупке диплома можно считать целесообразным. Выгодно купить диплом любого института lgbtqia.network/read-blog/221702_diplom-kolledzh-cena.html

  17. Sazrpjk表示:

    Хорошо быть студентом, пока не придет пора писать диплом, что и произошло со мной, но не стоит отчаиваться, ведь есть хорошие компании что помогают с написанием и сдачей диплома на хорошие оценки!
    Изначально искал информацию про купить диплом университета, диплом университета купить, купить высшее образование, диплом купить цена, купить диплом о среднем образовании в москве, потом попал на diplomybox.com/kupit-diplom-spetsialista-v-ulyanovske

發佈回覆給「MarkNOblile」的留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。