jQuery 屬性,元素

来源:https://www.cnblogs.com/py-web/archive/2020/03/20/12530260.html
-Advertisement-
Play Games

屬性操作固定屬性 prop()獲取固定屬性$("a").prop("href") 2. 設置屬性$('a').prop("title", '我們')註意:prop 更加適用disabled / checked / selected 等。自定義屬性 attr()獲取自定義屬性$('div').attr... ...


屬性操作

固定屬性 prop()
  1. 獲取固定屬性
  • $("a").prop("href")

      2. 設置屬性

  • $('a').prop("title", '我們')

註意:

  • prop 更加適用disabled / checked / selected 等。
自定義屬性 attr()
  1. 獲取自定義屬性
  • $('div').attr('index')

      2. 設置自定義屬性

  • $('span').attr('index', 1)
數據緩存 data()
  1. 設置數據緩存
  • $('span').data('uname', 'peach')

      2. 獲取數據緩存

  • $('span').data('uname')

註意:

  • data 獲取html5 自定義data-index, 第一個 不用寫data- , 得到的是數字型。
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="jquery.min.js"></script>
</head>

<body>
    <a href="http://www.itcast.cn" title="都挺好">都挺好</a>
    <input type="checkbox" name="" id="" checked>
    <div index="1" data-index="2">我是div</div>
    <span>123</span>
</body>
<script>

    $(function () {
        // 1.獲取固定屬性名
        console.log($("a").prop("href"));
        console.log($("a").prop('title'));
        // 1.1 設置屬性
        $('a').prop("title", '我們')

        // 1.2 prop 更加適用disabled / checked / selected 等。
        $('input').change(function () {
            console.log($(this).prop("checked"));
        })

        // 2 自定義屬性
        // 2.1 獲取自定義屬性
        console.log($('div').attr('data-index'));
        console.log($('div').attr('index'));
        // 2.2 設置自定義屬性
        $('span').attr('index', 1)

        // 3 數據緩存 data() 這個裡面的數據是存放在元素的記憶體裡面
        $('span').data('uname', 'peach'); // 設置緩存數據
        console.log($('span').data('uname'));  // 獲取緩存數據
        // 3.1 data 獲取html5 自定義data-index, 第一個 不用寫data- , 得到的是數字型。
        console.log($('div').data('index'));

    })

</script>

</html>
示例代碼
$(function () {
    // 全選和 全不選
    // 把全選的的狀態給其他商品的狀態即可
    // 1. 全選
    $('.checkall').change(function () {
        // 1.1 設置其他商品的狀態和全選按鈕 的狀態一致
        console.log($(this).prop('checked'));
        $(".j-checkbox, .checkall").prop("checked", $(this).prop("checked"));

        // 1.2 如果全選則 讓所有的商品添加 check-cart-item 類名
        if ($(this).prop("checked")) {
            $('.cart-item').addClass("check-cart-item"); // 添加類名
        } else {
            $(".cart-item").removeClass("check-cart-item");
        }
    })

    // 2. 如果小框裡面的數值等於所有數組,則選擇全選
    $('.j-checkbox').change(function () {
        console.log($(".j-checkbox:checked").length);

        // 如果當前選擇的數量等於商品數量, 則全選選中
        if ($(".j-checkbox:checked").length == $(".j-checkbox").length) {
            $(".checkall").prop("checked", true);
        } else {
            $(".checkall").prop("checked", false);
        }

        if ($(this).prop("checked")) {
            // 讓當前的商品添加 check-cart-item 類名
            $(this).parents(".cart-item").addClass("check-cart-item");
        } else {
            // check-cart-item 移除
            $(this).parents(".cart-item").removeClass("check-cart-item");
        }
    })



})
案列-全選與全不選
文本數值

文本屬性值常見操作有三種:html() / text() / val() ; 分別對應JS中的 innerHTML 、innerText 和 value 屬性。

  1. 普通元素內容html()  對應JS中的 innerHTML
  2. 普通元素文本內容   對應JS中的 innerText
  3. 表單的值                 對應JS中的 value

註意:html() 可識別標簽,text() 不識別標簽。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="jquery.min.js"></script>
</head>

<body>

    <div>
        <span>我是內容</span>
    </div>
    <input type="text" value="請輸入內容">
    <script>
        // 1. 獲取設置元素內容 html()
        console.log($('div').html());
        // 1.1 設置HTML內容
        $('div').html('<h1>握手</h1>')

        // 2. 獲取設置元素文本內容 text()
        console.log($('div').text());
        // 2.1 設置文本內容
        $('div').text('111')

        // 3. 獲取設置表單值 val()
        console.log($('input').val());
        // 3.1 設置屬性值
        $('input').val('test')


    </script>
</body>

</html>
示例代碼
$(function () {
    // 全選和 全不選
    // 把全選的的狀態給其他商品的狀態即可
    // 1. 全選
    $('.checkall').change(function () {
        // 1.1 設置其他商品的狀態和全選按鈕 的狀態一致
        console.log($(this).prop('checked'));
        $(".j-checkbox, .checkall").prop("checked", $(this).prop("checked"));

        // 1.2 如果全選則 讓所有的商品添加 check-cart-item 類名
        if ($(this).prop("checked")) {
            $('.cart-item').addClass("check-cart-item"); // 添加類名
        } else {
            $(".cart-item").removeClass("check-cart-item");
        }
    })

    // 2. 如果小框裡面的數值等於所有數組,則選擇全選
    $('.j-checkbox').change(function () {
        console.log($(".j-checkbox:checked").length);

        // 如果當前選擇的數量等於商品數量, 則全選選中
        if ($(".j-checkbox:checked").length == $(".j-checkbox").length) {
            $(".checkall").prop("checked", true);
        } else {
            $(".checkall").prop("checked", false);
        }

        if ($(this).prop("checked")) {
            // 讓當前的商品添加 check-cart-item 類名
            $(this).parents(".cart-item").addClass("check-cart-item");
        } else {
            // check-cart-item 移除
            $(this).parents(".cart-item").removeClass("check-cart-item");
        }
    })

    // --------------------------------------------------------------------------------
    // 商品 + 計算
    $('.increment').click(function () {
        // 獲取到當前多少件商品
        var n = $(this).siblings('.itxt').val()
        n++;
        $(this).siblings(".itxt").val(n);
        // 然後獲取到單價標簽
        var p = $(this).parents('.p-num').siblings('.p-price').html()
        p = p.substr(1) // 得到單價

        var price = (p * n).toFixed(2); // 保留兩位小數
        console.log(price);
        // 然後把價格替換到小計裡面
        // 獲取到小計標簽
        $(this).parents('.p-num').siblings('.p-sum').html("" + price)

    })

    // 商品 - 計算
    $('.decrement').click(function () {
        // 先獲取到當前商品數量
        var n = $(this).siblings('.itxt').val()
        // 如果等於1  不做操作
        if (n == 1) {
            return false
        }
        n--;
        // 賦值到數量標簽裡面
        $(this).siblings(".itxt").val(n);
        // 得到商品的單價
        var p = $(this).parents('.p-num').siblings('.p-price').html().substr(1)
        var price = (p * n).toFixed(2); // 保留兩位小數
        $(this).parents('.p-num').siblings('.p-sum').html("" + price)
    })

    // 用戶直接再文本款裡面輸入數量
    $('.itxt').change(function () {
        var n = $(this).val()
        if (n < 0) {
            n = 1
            $(this).val(n);
        }
        // 得到商品的單價
        var p = $(this).parents('.p-num').siblings('.p-price').html().substr(1)
        var price = (p * n).toFixed(2); // 保留兩位小數
        $(this).parents('.p-num').siblings('.p-sum').html("" + price)

    })

})
案例-購物車小計計算

元素操作

  1. $('div').each(function (i, domEle) {   })
  • 回調函數第一個是index,第二個是dom元素對象, 要轉換為jquer對象

      2. $.each(obj, function (i, ele) {  })

  • $.each() 方法遍歷元素 主要用於遍曆數據,處理數據
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>

    </style>
    <script src="jquery.min.js"></script>
</head>

<body>
    <div>1</div>
    <div>2</div>
    <div>3</div>
    <script>
        $(function () {
            var sum = 0
            var arr = ["red", "green", "blue"];
            // 第一種遍歷元素
            $('div').each(function (i, domEle) {
                // console.log(i, domEle);
                // 回調函數第一個是index,
                // 第二個是dom元素對象,要轉換為jquer對象
                $(domEle).css('color', arr[i])
                sum += parseInt($(domEle).text())
            })


            // 第二種 $.each() 方法遍歷元素 主要用於遍曆數據,處理數據
            $.each(arr, function (i, ele) {
                console.log(i, ele);
            })

            $.each({
                "name": 'peach',
                "age": 12
            }, function (i, ele) {
                console.log(i);  // name
                console.log(ele); // peach

            })


        })
    </script>
</body>

</html>
示例代碼
$(function () {
    // 全選和 全不選
    // 把全選的的狀態給其他商品的狀態即可
    // 1. 全選
    $('.checkall').change(function () {
        // 1.1 設置其他商品的狀態和全選按鈕 的狀態一致
        console.log($(this).prop('checked'));
        $(".j-checkbox, .checkall").prop("checked", $(this).prop("checked"));

        // 1.2 如果全選則 讓所有的商品添加 check-cart-item 類名
        if ($(this).prop("checked")) {
            $('.cart-item').addClass("check-cart-item"); // 添加類名
        } else {
            $(".cart-item").removeClass("check-cart-item");
        }
    })

    // 2. 如果小框裡面的數值等於所有數組,則選擇全選
    $('.j-checkbox').change(function () {
        console.log($(".j-checkbox:checked").length);

        // 如果當前選擇的數量等於商品數量, 則全選選中
        if ($(".j-checkbox:checked").length == $(".j-checkbox").length) {
            $(".checkall").prop("checked", true);
        } else {
            $(".checkall").prop("checked", false);
        }

        if ($(this).prop("checked")) {
            // 讓當前的商品添加 check-cart-item 類名
            $(this).parents(".cart-item").addClass("check-cart-item");
        } else {
            // check-cart-item 移除
            $(this).parents(".cart-item").removeClass("check-cart-item");
        }
    })

    // --------------------------------------------------------------------------------
    // 商品 + 計算
    $('.increment').click(function () {
        // 獲取到當前多少件商品
        var n = $(this).siblings('.itxt').val()
        n++;
        $(this).siblings(".itxt").val(n);
        // 然後獲取到單價標簽
        var p = $(this).parents('.p-num').siblings('.p-price').html()
        p = p.substr(1) // 得到單價

        var price = (p * n).toFixed(2); // 保留兩位小數
        console.log(price);
        // 然後把價格替換到小計裡面
        // 獲取到小計標簽
        $(this).parents('.p-num').siblings('.p-sum').html("" + price)
        getSum()

    })

    // 商品 - 計算
    $('.decrement').click(function () {
        // 先獲取到當前商品數量
        var n = $(this).siblings('.itxt').val()
        // 如果等於1  不做操作
        if (n == 1) {
            return false
        }
        n--;
        // 賦值到數量標簽裡面
        $(this).siblings(".itxt").val(n);
        // 得到商品的單價
        var p = $(this).parents('.p-num').siblings('.p-price').html().substr(1)
        var price = (p * n).toFixed(2); // 保留兩位小數
        $(this).parents('.p-num').siblings('.p-sum').html("" + price)
        getSum()
    })

    // 用戶直接再文本款裡面輸入數量
    $('.itxt').change(function () {
        var n = $(this).val()
        if (n < 0) {
            n = 1
            $(this).val(n);
        }
        // 得到商品的單價
        var p = $(this).parents('.p-num').siblings('.p-price').html().substr(1)
        var price = (p * n).toFixed(2); // 保留兩位小數
        $(this).parents('.p-num').siblings('.p-sum').html("" + price)
        getSum()

    })

    // ----------------------------------------------------------------
    // 計算總價
    getSum()

    function getSum() {
        // 先定義總件數,總價格
        var count = 0;
        var money = 0;
        $('.itxt').each(function (i, ele) {
            // ele 就是三個圖書的dom對象,要轉換為jquer對象
            count += parseInt($(ele).val()) // 總件數
        })
        // 修改底部總件數
        $('.amount-sum em').text(count)

        // 修改總價格
        $('.p-sum').each(function (i, ele) {
            // 總價格
            money += parseInt($(ele).text().substr(1))
        })
        // 修改底部總價格
        $(".price-sum em").text("" + money.toFixed(2));


    }

})
案例-購物車計算總價和總件數
創建,刪除,修改元素

創建

  • $("<li>創建的li</li>")

添加

  1. 內部添加
  • $('li').append(li) // 放在元素的最後面
  • $('li').prepend(li)  // 放在元素的最前面

      2. 外部添加

  • $('li').after(li) // 放在目標元素的最後面
  • $('li').before(li)   // 放在目標元素的最前面

內部添加元素,生成後,他們是父子關係

外部添加元素,生成後,他們是兄弟關係

刪除

  1. $('ul').remove() // 自殺式刪除,刪除元素本身
  2. $('ul').html('')  // 可以刪除匹配的元素裡面的子節點 孩子
  3. $('ul').empty() // 匹配刪除ele 裡面的所有子節點

empty() 和 html()  區別在於html可以設置內容

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="jquery.min.js"></script>
</head>

<body>
    <ul>
        <li>原先的li</li>
    </ul>
    <div class="test">我是原先的div</div>

    <script>
        $(function () {
            // 創建元素

            // 1.1 內部添加
            // var li = $("<li>創建的li</li>")
            // $('li').append(li) // 放在元素的最後面 
            // $('li').prepend(li)  // 放在元素的最前面

            // 1.2 外部添加
            // var li = $("<div> 我是外部添加的</div>")
            // $('li').after(li) // 放在目標元素的最後面
            // $('li').before(li)   // 放在目標元素的最前面

            // 刪除元素
            // $('ul').remove() // 自殺式刪除,刪除元素本身
            // $('ul').html('')  // 可以刪除匹配的元素裡面的子節點 孩子
            $('ul').empty() // 匹配刪除ele 裡面的所有子節點


        })

    </script>
</body>

</html>
示例代碼
$(function () {
    // 全選和 全不選
    // 把全選的的狀態給其他商品的狀態即可
    // 1. 全選
    $('.checkall').change(function () {
        // 1.1 設置其他商品的狀態和全選按鈕 的狀態一致
        console.log($(this).prop('checked'));
        $(".j-checkbox, .checkall").prop("checked", $(this).prop("checked"));

        // 1.2 如果全選則 讓所有的商品添加 check-cart-item 類名
        if ($(this).prop("checked")) {
            $('.cart-item').addClass("check-cart-item"); // 添加類名
        } else {
            $(".cart-item").removeClass("check-cart-item");
        }
    })

    // 2. 如果小框裡面的數值等於所有數組,則選擇全選
    $('.j-checkbox').change(function () {
        console.log($(".j-checkbox:checked").length);

        // 如果當前選擇的數量等於商品數量, 則全選選中
        if ($(".j-checkbox:checked").length == $(".j-checkbox").length) {
            $(".checkall").prop("checked", true);
        } else {
            $(".checkall").prop("checked", false);
        }

        if ($(this).prop("checked")) {
            // 讓當前的商品添加 check-cart-item 類名
            $(this).parents(".cart-item").addClass("check-cart-item");
        } else {
            // check-cart-item 移除
            $(this).parents(".cart-item").removeClass("check-cart-item");
        }
    })

    // --------------------------------------------------------------------------------
    // 商品 + 計算
    $('.increment').click(function () {
        // 獲取到當前多少件商品
        var n = $(this).siblings('.itxt').val()
        n++;
        $(this).siblings(".itxt").val(n);
        // 然後獲取到單價標簽
        var p = $(this).parents('.p-num').siblings('.p-price').html()
        p = p.substr(1) // 得到單價

        var price = (p * n).toFixed(2); // 保留兩位小數
        console.log(price);
        // 然後把價格替換到小計裡面
        // 獲取到小計標簽
        $(this).parents('.p-num').siblings('.p-sum').html("" + price)
        getSum()

    })

    // 商品 - 計算
    $('.decrement').click(function () {
        // 先獲取到當前商品數量
        var n = $(this).siblings('.itxt').val()
        // 如果等於1  不做操作
        if (n == 1) {
            return false
        }
        n--;
        // 賦值到數量標簽裡面
        $(this).siblings(".itxt").val(n);
        // 得到商品的單價
        var p = $(this).parents('.p-num').siblings('.p-price').html().substr(1)
        var price = (p * n).toFixed(2); // 保留兩位小數
        $(this).parents('.p-num').siblings('.p-sum').html("" + price)
        getSum()
    })

    // 用戶直接再文本款裡面輸入數量
    $('.itxt').change(function () {
        var n = $(this).val()
        if (n < 0) {
            n = 1
            $(this).val(n);
        }
        // 得到商品的單價
        var p = $(this).parents('.p-num').siblings('.p-price').html().substr(1)
        var price = (p * n).toFixed(2); // 保留兩位小數
        $(this).parents('.p-num').siblings('.p-sum').html("" + price)
        getSum()

    })

    // ----------------------------------------------------------------
    // 刪除商品模塊
    $('.p-action a').click(function () {
        $(this).parents('.cart-item').remove();
        getSum();

    })
    // 刪除選中的商品
    $('.remove-batch').click(function () {
        $('.j-checkbox:checked').parents('.cart-item').remove()
        getSum()
    })

    // 清空購物車
    $('.clear-all').click(function () {
        $('.cart-item').remove()
        getSum()
    })



    // ----------------------------------------------------------------
    // 計算總價
    getSum()

    function getSum() {
        // 先定義總件數,總價格
        var count = 0;
        var money = 0;
        $('.itxt').each(function (i, ele) {
            // ele 就是三個圖書的dom對象,要轉換為jquer對象
            count += parseInt($(ele).val()) // 總件數
        })
        // 修改底部總件數
        $('.amount-sum em').text(count)

        // 修改總價格
        $('.p-sum').each(function (i, ele) {
            // 總價格
            money += parseInt($(ele).text().substr(1))
        })
        // 修改底部總價格
        $(".price-sum em").text("" + money.toFixed(2));

    }

})
案例-清空刪除購物車

尺寸,位置操作

尺寸

語法

用法

width() / height()

匹配元素寬度和高度,只算width和height

innerWidth()  /  innerHieght()

匹配元素寬度和高度,包含padding

outerWidth()  /  outerHeight()

匹配元素寬度和高度,包含padding, border

outerWidth(true)  /  outerHeight(true)

匹配元素寬度和高度,包含padding,border,margin

  • 如果() 裡面參數為空,返回相對應值,返回數字類型
  • 參數如果為數字,則是修改相對於的值
  • 參數可以不寫單位
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        div {
            width: 200px;
            height: 200px;
            background-color: pink;
            padding: 10px;
            border: 15px solid red;
            margin: 20px;
        }
    </style>
    <script src="jquery.min.js"></script>
</head>

<body>
    <div></div>
    <script>
        $(function () {
            console.log($('div').height());  //200
            console.log($('div').width(250));  // 修改值

            console.log($('div').innerWidth());  //220  width + padding

            console.log($('div').outerWidth());  // 250   width + padding + border

            console.log($('div').outerWidth(true))  // 290  width + padding + border + margin

        })

    </script>
</body>

</html>
示例代碼
位置
  1. offset()  設置或者獲取元素偏移量
  • 跟父級別沒關係,相對於文檔的偏移量
  • 有left, top兩個屬性, offset().top 獲取相對於文檔的值
  • 設置元素偏移量: offser({left: 100, top: 100})

      2. position()  獲取元素偏移

  • 相對於定位的父親偏移量坐標
  • 有left, top兩個屬性, offset().top 獲取相對於父親的值
  • 只能獲取
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }

        .father {
            width: 400px;
            height: 400px;
            background-color: pink;
            margin: 100px;
            overflow: hidden;
            position: relative;
        }

        .son {
            width: 150px;
            height: 150px;
            background-color: purple;
            position: absolute;
            left: 10px;
            top: 10px;
        }
    </style>
    <script src="jquery.min.js"></script>
</head>

<body>
    <div class="father">
        <div class="son"></div>
    </div>
    <script>
        // 相對於文檔
        console.log($('.son').offset());
        console.log($('.son').offset().top)
        //設置
        $('.son').offset({
            top: 200,
            left: 200
        })

        // 相對於父親, 只能獲取,不是設置
        console.log($('.son').position());
        console.log($('.son').position().top);

    </script>
</body>

</html>
示例代碼

      3. scrollTop() /  scrollLeft()  設置獲取元素捲去的距離

  • () 為空是獲取,裡面是數字是設置
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        body {
            height: 2000px;
        }

        .back {
            position: fixed;
            width: 50px;
            height: 50px;
            background-color: pink;
            right: 30px;
            bottom: 100px;
            display: none;
        }

        .container {
            width: 900px;
            height: 500px;
            background-color: skyblue;
            margin: 400px auto;
        }
    </style>
    <script src="jquery.min.js"></script>
</head>

<body>
    <div class="back">返回頂部</div>
    <div class="container">
    </div>
    <script>
        $(function () {
            // 設置捲去的頭部距離
            $(document).scrollTop(100)

            // 獲取box 距離頂部的距離
            var boxTop = $('.container').offset().top
            console.log(boxTop);

            // 註冊卷去事件
            $(window).scroll(function () {
                // console.log($(document).scrollTop()); // 這個是文檔距離頂部的距離
                // 如果頁面的捲去大於 盒子捲去的距離,顯示返回頂部按鈕
                if ($(document).scrollTop() >= boxTop) {
                    $('.back').fadeIn()
                } else {
                    $('.back').fadeOut()
                }

            })

            // 點擊返回頂部,
            $('.back').click(function () {
                $('html, body').stop().animate({
                    scrollTop: 0
                })
            })


        })
    </script>
</body>

</html>
示例代碼
$(function () {
    // 當我們點擊了小li 此時不需要執行 頁面滾動事件裡面的 li 的背景選擇 添加 current
    // 節流閥  互斥鎖 
    var flag = true;
    // 1.顯示隱藏電梯導航
    var toolTop = $(".recommend").offset().top;
    toggleTool();

    function toggleTool() {
        if ($(document).scrollTop() >= toolTop) {
            $(".fixedtool").fadeIn();
        } else {
            $(".fixedtool").fadeOut();
        };
    }

    $(window).scroll(function () {
        toggleTool();
        // 3. 頁面滾動到某個內容區域,左側電梯導航小li相應添加和刪除current類名


        if (flag) {
            $(".floor .w").each(function (i, ele) {
                if ($(document).scrollTop() >= $(ele).offset().top) {
                    console.log(i);
                    $(".fixedtool li").eq(i).addClass("current").siblings().removeClass();

                }
            })
        }



    });
    // 2. 點擊電梯導航頁面可以滾動到相應內容區域
    $(".fixedtool li").click(function () {
        flag = false;
        console.log($(this).index());
        // 當我們每次點擊小li 就需要計算出頁面要去往的位置 
        // 選出對應索引號的內容區的盒子 計算它的.offset().top
        var current = $(".floor .w").eq($(this).index()).offset().top;
        // 頁面動畫滾動效果
        $("body, html").stop().animate({
            scrollTop: current
        }, function () {
            flag = true;
        });
        // 點擊之後,讓當前的小li 添加current 類名 ,姐妹移除current類名
        $(	   

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Ext.define('MyTreeModel', { extend: 'Ext.data.Model', fields: [ 'name','url' ] }); var tree = Ext.create('Ext.tree.Panel',{ width:'200', height:'200', ...
  • CSS 百分比都是相對於誰計算 [Toc] 相對於父級元素寬高 + , , ,`padding text indent` ... 等 相對於父級定位元素寬高 + , , , 相對於自身寬高 + , , , 相對於自身字體大小 + 相對於繼承字體大小 + `font size` ...
  • 網頁優化 [Toc] 上一章介紹了 "從輸入地址到到顯示網頁瀏覽器都幹了什麼" ,絕大部分的優化都在這個過程中 減少HTTP請求 減少HTTP請求是優化的重要手段 1. 減少圖片使用 2. 對小圖標這一類圖片使用 合併, 或者使用 編碼圖片 1. 優點: 減少了請求 2. 缺點: 修改維護不方便, ...
  • 解釋一下web前端工作是做啥的,Web前端開發工程師,主要職責是利用(X)HTML/CSS/JavaScript/Flash等各種Web技術進行客戶端產品的開發。完成客戶端程式(也就是瀏覽器端)的開發,開發JavaScript以及Flash模塊,同時結合後臺開發技術模擬整體效果,進行豐富互聯網的We ...
  • //判斷數組是否包含某個值 var nArr = new Array();nArr.push('123');nArr.push('345'); if (nArr.indexOf(234) != -1) { alert('存在');} else { alert('不存在');} ...
  • /** * 驗證日期是否正確 * 日期格式:yyyy-mm-dd,yyyy-m-d,yyyy/mm/dd,yyyy/m/d */function checkDate(dateStr) { dateStr = dateStr.replace(/\//g, '-'); var dateReg = /^( ...
  • 輸入地址到顯示頁面發生了什麼 [Toc] 簡單版 1. 瀏覽器發起DNS請求,解析功能變數名稱得到 地址 2. 封裝 請求報文,併發送給伺服器 3. 伺服器接收請求並處理請求,封裝 響應報發送會瀏覽器 4. 瀏覽器解析響應報文, 遇到新資源繼續請求 5. 瀏覽器根據解析結果生成 樹, 樹, 進行頁面佈局和渲 ...
  • CSS3 3種隱藏元素方法的區別 [Toc] display: none 1. 結構: 瀏覽器不會渲染 的元素, 並且不占據頁面空間 2. 事件監聽: 無法對元素進行事件監聽 3. 繼承: 不會被子元素繼承(子元素設置 不會顯示) 4. 改動: 改動屬性值會引起頁面的 重排 和 重繪 5. 過渡: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...