jquery新知識

1. JQuery 高級
    1. 動畫
    2. 遍歷
    3. 事件綁定
    4. 案例
    5. 插件

JQuery 高級

1. 動畫
    1. 三種方式顯示和隱藏元素
        1. 默認顯示和隱藏方式
            1. show([speed,[easing],[fn]])
                1. 參數:
                    1. speed:動畫的速度。三個預約義的值("slow","normal", "fast")或表示動畫時長的毫秒數值(如:1000)
                    2. easing:用來指定切換效果,默認是"swing",可用參數"linear"
                        * swing:動畫執行時效果是 先慢,中間快,最後又慢
                        * linear:動畫執行時速度是勻速的
                    3. fn:在動畫完成時執行的函數,每一個元素執行一次。

            2. hide([speed,[easing],[fn]])
            3. toggle([speed],[easing],[fn])

        2. 滑動顯示和隱藏方式
            1. slideDown([speed],[easing],[fn])
            2. slideUp([speed,[easing],[fn]])
            3. slideToggle([speed],[easing],[fn])

        3. 淡入淡出顯示和隱藏方式
            1. fadeIn([speed],[easing],[fn])
            2. fadeOut([speed],[easing],[fn])
            3. fadeToggle([speed,[easing],[fn]])


2. 遍歷
    1. js的遍歷方式
        * for(初始化值;循環結束條件;步長)
    2. jq的遍歷方式
        1. jq對象.each(callback)
            1. 語法:
                jquery對象.each(function(index,element){});
                    * index:就是元素在集合中的索引
                    * element:就是集合中的每個元素對象

                    * this:集合中的每個元素對象
            2. 回調函數返回值:
                * true:若是當前function返回爲false,則結束循環(break)。
                * false:若是當前function返回爲true,則結束本次循環,繼續下次循環(continue)
        2. $.each(object, [callback])
        3. for..of: jquery 3.0 版本以後提供的方式
            for(元素對象 of 容器對象)

3. 事件綁定
    1. jquery標準的綁定方式
        * jq對象.事件方法(回調函數);
        * 注:若是調用事件方法,不傳遞迴調函數,則會觸發瀏覽器默認行爲。
            * 表單對象.submit();//讓表單提交
    2. on綁定事件/off解除綁定
        * jq對象.on("事件名稱",回調函數)
        * jq對象.off("事件名稱")
            * 若是off方法不傳遞任何參數,則將組件上的全部事件所有解綁
    3. 事件切換:toggle
        * jq對象.toggle(fn1,fn2...)
            * 當單擊jq對象對應的組件後,會執行fn1.第二次點擊會執行fn2.....

        * 注意:1.9版本 .toggle() 方法刪除,jQuery Migrate(遷移)插件能夠恢復此功能。
             <script src="../js/jquery-migrate-1.0.0.js" type="text/javascript" charset="utf-8"></script>


4. 案例
    1. 廣告顯示和隱藏
        <!DOCTYPE html>
        <html>
        <head>
            <meta charset="UTF-8">
            <title>廣告的自動顯示與隱藏</title>
            <style>
                #content{width:100%;height:500px;background:#999}
            </style>

            <!--引入jquery-->
            <script type="text/javascript" src="../js/jquery-3.3.1.min.js"></script>
            <script>
                /*
                    需求:
                        1. 當頁面加載完,3秒後。自動顯示廣告
                        2. 廣告顯示5秒後,自動消失。

                    分析:
                        1. 使用定時器來完成。setTimeout (執行一次定時器)
                        2. 分析發現JQuery的顯示和隱藏動畫效果其實就是控制display
                        3. 使用  show/hide方法來完成廣告的顯示
                 */

                //入口函數,在頁面加載完成以後,定義定時器,調用這兩個方法
                $(function () {
                   //定義定時器,調用adShow方法 3秒後執行一次
                   setTimeout(adShow,3000);
                   //定義定時器,調用adHide方法,8秒後執行一次
                    setTimeout(adHide,8000);
                });
                //顯示廣告
                function adShow() {
                    //獲取廣告div,調用顯示方法
                    $("#ad").show("slow");
                }
                //隱藏廣告
                function adHide() {
                    //獲取廣告div,調用隱藏方法
                    $("#ad").hide("slow");
                }



            </script>
        </head>
        <body>
        <!-- 總體的DIV -->
        <div>
            <!-- 廣告DIV -->
            <div id="ad" style="display: none;">
                <img style="width:100%" src="../img/adv.jpg" />
            </div>

            <!-- 下方正文部分 -->
            <div id="content">
                正文部分
            </div>
        </div>
        </body>
        </html>



    2. 抽獎
        <!DOCTYPE html>
        <html>
        <head>
            <meta charset="UTF-8">
            <title>jquery案例之抽獎</title>
            <script type="text/javascript" src="../js/jquery-3.3.1.min.js"></script>

            <script language='javascript' type='text/javascript'>

                /*
                    分析:
                        1. 給開始按鈕綁定單擊事件
                            1.1 定義循環定時器
                            1.2 切換小相框的src屬性
                                * 定義數組,存放圖片資源路徑
                                * 生成隨機數。數組索引


                        2. 給結束按鈕綁定單擊事件
                            1.1 中止定時器
                            1.2 給大相框設置src屬性

                 */
                var imgs = ["../img/man00.jpg",
                            "../img/man01.jpg",
                            "../img/man02.jpg",
                            "../img/man03.jpg",
                            "../img/man04.jpg",
                            "../img/man05.jpg",
                            "../img/man06.jpg",
                            ];
                var startId;//開始定時器的id
                var index;//隨機角標
                $(function () {
                    //處理按鈕是否能夠使用的效果
                    $("#startID").prop("disabled",false);
                    $("#stopID").prop("disabled",true);


                   //1. 給開始按鈕綁定單擊事件
                    $("#startID").click(function () {
                        // 1.1 定義循環定時器 20毫秒執行一次
                        startId = setInterval(function () {
                            //處理按鈕是否能夠使用的效果
                            $("#startID").prop("disabled",true);
                            $("#stopID").prop("disabled",false);


                            //1.2生成隨機角標 0-6
                            index = Math.floor(Math.random() * 7);//0.000--0.999 --> * 7 --> 0.0-----6.9999
                            //1.3設置小相框的src屬性
                            $("#img1ID").prop("src",imgs[index]);

                        },20);
                    });


                    //2. 給結束按鈕綁定單擊事件
                    $("#stopID").click(function () {
                        //處理按鈕是否能夠使用的效果
                        $("#startID").prop("disabled",false);
                        $("#stopID").prop("disabled",true);


                       // 1.1 中止定時器
                        clearInterval(startId);
                       // 1.2 給大相框設置src屬性
                        $("#img2ID").prop("src",imgs[index]).hide();
                        //顯示1秒以後
                        $("#img2ID").show(1000);
                    });
                });




            </script>

        </head>
        <body>

        <!-- 小像框 -->
        <div style="border-style:dotted;width:160px;height:100px">
            <img id="img1ID" src="../img/man00.jpg" style="width:160px;height:100px"/>
        </div>

        <!-- 大像框 -->
        <div
                style="border-style:double;width:800px;height:500px;position:absolute;left:500px;top:10px">
            <img id="img2ID" src="../img/man00.jpg" width="800px" height="500px"/>
        </div>

        <!-- 開始按鈕 -->
        <input
                id="startID"
                type="button"
                value="點擊開始"
                style="width:150px;height:150px;font-size:22px">

        <!-- 中止按鈕 -->
        <input
                id="stopID"
                type="button"
                value="點擊中止"
                style="width:150px;height:150px;font-size:22px">


        </body>
        </html>

5. 插件:加強JQuery的功能
    1. 實現方式:
        1. $.fn.extend(object) 
            * 加強經過Jquery獲取的對象的功能  $("#id")
2. $.extend(object)
            * 加強JQeury對象自身的功能  $/jQuery
相關文章
相關標籤/搜索