jQuery中的工具與外掛個人分享

a達達發表於2018-09-11

工具

類陣列操作

  • get(index)方法
  • 作用 – 根據索引值返回對應的元素(DOM物件)
  • 引數index – 表示元素在jQuery物件中的索引值
  • $().index(element)方法 – 只能查詢jQuery物件

    • 作用 – 在指定的jQuery物件中查詢是否存在element

      • 存在 – 返回element所對應的索引值
      • 不存在 – 返回 -1
  • $.inArray(value, array, fromIndex)方法 – 查詢陣列或物件

    • 作用 – 在指定的陣列或物件中查詢是否存在value

      • 存在 – 返回value所對應的索引值
      • 不存在 – 返回 -1
    • 引數

      • value – 表示要查詢的資料內容
      • array – 表示指定的陣列或物件
  • $().toArray()方法

    • 作用 – 將jQuery物件轉換為陣列
  • $.makeArray(obj)方法

    • 作用 – 將類陣列轉換為陣列
    • 引數obj – 表示類陣列物件

示例程式碼:

    <script src="js/jquery.js"></script>
</head>
<body>
<div id="d1"></div>
<div></div>
<div></div>
<div></div>
<div></div>
<script>
    // length屬性 - 獲取當前jQuery物件中包含DOM物件的個數
    console.log($(`div`).length);// 5
    for (var i=0; i<$(`div`).length; i++) {
        // jQuery物件[索引值] -> 轉換為DOM物件
        var div = $(`div`)[i];
    }
    // get(index)方法
    console.log($(`div`).get(0));
    /*
        * $().index(element)方法 - 只能查詢jQuery物件
          * 作用 - 在指定的jQuery物件中查詢是否存在element
            * 存在 - 返回element所對應的索引值
            * 不存在 - 返回 -1
          * 引數element - 可以是DOM物件,還可以是jQuery物件,也可以是選擇器
        * $.inArray(value, array, fromIndex)方法 - 查詢陣列或物件
          * 作用 - 在指定的陣列或物件中查詢是否存在value
            * 存在 - 返回value所對應的索引值
            * 不存在 - 返回 -1
          * 引數
            * value - 表示要查詢的資料內容
            * array - 表示指定的陣列或物件
     */
    console.log($(`div`).index(document.getElementById(`d1`)));// 0
    console.log($(`div`).index($(`#d1`)));
    console.log($(`div`).index(`#d1`));

    console.log($.inArray(document.getElementById(`d1`), $(`div`)));// 0
    var arr = [1,2,3,4,5];
    console.log($.inArray(3, arr));
    console.log($.inArray(document.getElementById(`d1`), document.getElementsByTagName(`div`)));
    console.log($.inArray(8, arr));

    /*
        * $().toArray()方法
          * 作用 - 將jQuery物件轉換為陣列
        * $.makeArray(obj)方法
          * 作用 - 將類陣列轉換為陣列
          * 引數obj - 表示類陣列物件
     */
    console.log($(`div`).toArray());
    console.log($.makeArray($(`div`)));
    console.log($.makeArray(document.getElementsByTagName(`div`)));

</script>
</body>

全域性函式與工廠函式

  • $().index()

    • jQuery() – 工廠函式的呼叫 -> 返回jQuery物件
    • index()方法是jQuery物件的方法
  • $.inArray()

    • jQuery – 也是一個物件 -> jQuery的全域性物件

示例程式碼:

    <script src="js/jquery.js"></script>
</head>
<body>
<div id="d1"></div>
<div></div>
<div></div>
<div></div>
<div></div>
<script>
    /*
        * $().index()
          * jQuery() - 工廠函式的呼叫 -> 返回jQuery物件
          * index()方法是jQuery物件的方法
        * $.inArray()
          * jQuery - 也是一個物件 -> jQuery的全域性物件
     */
    var index1 = $(`div`).index(`#d1`);
    var index2 = $.inArray(document.getElementById(`d1`), $(`div`));
    console.log(index1, index2);
    // 所有函式都是Function型別的物件
    function fun(){
        console.log(`this is function`);
    }

    fun();// 函式呼叫
    console.log(fun instanceof Object);// true

</script>
</body>

遍歷類陣列

  • $().each(callback)方法

    • 表示遍歷陣列或類陣列物件“括號中填寫 指定陣列或類陣列 執行函式”
  • each()方法

    • 表示遍歷jQuery物件的陣列或類陣列“括號中填寫執行函式”

示例程式碼:

    <script src="js/jquery.js"></script>
</head>
<body>
<div id="d1"></div>
<div id="d2"></div>
<div id="d3"></div>
<div id="d4"></div>
<div id="d5"></div>
<script>
    var $divs = $(`div`);
    /*
        $().each(callback)方法
        * 作用 - 用於遍歷jQuery物件
        * 引數callback - 回撥函式
          function(index,domEle){}
          * index - 索引值
          * domEle - 遍歷後的DOM物件
     */
    $divs.each(function(index, domEle){
        console.log(index, domEle);
    });

    /*
        $.each(obj, callback)方法
        * 作用 - 用於遍歷陣列或物件
        * 引數
          * obj - 表示遍歷陣列或物件
          * callback - 回撥函式
            function(index,domEle){}
            * index - 索引值
            * domEle - 遍歷後的DOM物件
     */
    $.each(document.getElementsByTagName(`div`), function(index, domEle){
        console.log(index, domEle);
    });

</script>
</body>

字串操作

  • $.trim()方法 – 去掉字串中開始和結束的空格

示例程式碼:

    <script src="js/jquery.js"></script>
</head>
<body>
<script>
    // $.trim()方法 - 去掉字串中開始和結束的空格
    console.log($.trim(`  hello, i am zhangwu. `));

</script>
</body>

jQuery外掛

jQuery外掛的步驟

  1. 引入jQuery檔案
  2. 引入jQuery外掛檔案
  3. 使用外掛

懶載入外掛效果

  • lazyload外掛需要注意的是:
  1. 將圖片元素的src屬性替換為data-original屬性
  2. 為圖片元素設定class屬性,屬性值為lazyload
  3. lazyload外掛要求為圖片元素設定寬度或高度

示例程式碼:

    <script src="js/jquery.js"></script>
    <script src="lazyload/jquery.lazyload.js"></script>
</head>
<body>
<!--
    * class屬性 - 指定類選擇器(CSS樣式)
      * class=lazyload - 為了方便JavaScript邏輯定位頁面元素
    * data-original屬性 - 設定顯示圖片的真實路徑
      * lazyload外掛通過當前自定義屬性替換src屬性
 -->
<img class="lazyload" data-original="imgs/983755043622092476.jpg" width="600px">
<script>
    /*
        懶載入 - 實現的頁面中圖片的延遲載入
     */
    $(`img`).lazyload();
</script>
</body>

懶載入核心方法引數

  • lazyload(options)方法

    • threshold – 設定當前圖片距離瀏覽器視窗多少畫素值時開始載入
    • threshold – 設定當前圖片距離瀏覽器視窗多少畫素值時開始載入

示例程式碼:

    $(`img.lazyload`).lazyload({
        threshold : 200,
        effect : `fadeIn`
    });

瀑布流抄件效果

  • 實現瀑布流佈局的效果步驟:

    1. HTML頁面結構

      • 定義一個容器元素
      • 在容器元素中的所有元素呈現瀑布流效果
    2. 定位瀑布流佈局的容器元素,並且呼叫masonry()核心方法

      • $().masonry(options)

        • 選項

          • itemSelector – 指定需要瀑布流佈局效果的元素(選擇器)

示例程式碼:

    $(`.grid`).masonry({
        itemSelector: `.grid-item`
    });

輪播圖效果外掛

  • 輪播圖效果 – Swiper – 通過引入外部Swiper外掛,在呼叫由Swiper外掛提供的方法 – new Swiper( )
  • 注意: Swiper外掛分為CSS檔案和JS檔案,要一同引入
  • 為輪播圖的可視容器設定class屬性,屬性值為swiper-container
  • 為輪播圖的所有圖片容器設定class屬性,屬性值為swiper-wrapper

示例程式碼:

<body>
<!-- 可視視窗容器 -->
<div class="swiper-container">
    <!-- 所有圖片的容器 -->
    <div class="swiper-wrapper">
        <div class="swiper-slide red-swiper">Slide 1</div>
        <div class="swiper-slide blue-swiper">Slide 2</div>
        <div class="swiper-slide green-swiper">Slide 3</div>
    </div>
    <!-- 如果需要分頁器 -->
    <div class="swiper-pagination"></div>

    <!-- 如果需要導航按鈕 -->
    <div class="swiper-button-prev"></div>
    <div class="swiper-button-next"></div>
</div>
<script src="jQuery庫/jquery.js"></script>
<script src="輪播圖/swiper.js"></script>
<script>
    new Swiper(`.swiper-container`,{
        autoplay: true,//可選選項,自動滑動
        loop : true,
        // 如果需要分頁器
        pagination: {
            el: `.swiper-pagination`,
            clickable : true
        },
        // 如果需要前進後退按鈕
        navigation: {
            nextEl: `.swiper-button-next`,
            prevEl: `.swiper-button-prev`,
        }
    });
    /*
         輪播圖效果 - Swiper
        通過引入外部Swiper外掛,在呼叫由Swiper外掛提供的方法 - new Swiper( )
        Swiper外掛的注意要求:
         * Swiper外掛分為CSS檔案和JS檔案,要一同引入
         * 為輪播圖的可視容器設定class屬性,屬性值為swiper-container
         * 為輪播圖的所有圖片容器設定class屬性,屬性值為swiper-wrapper
         * 設定class屬性是為了方便操作
     */

</script>
</body>

相關文章