JavaScript之jQuery夠用即可(事件委託、動畫效果、擴展插件)

一、事件委託

1、事件委託
其實就是給對象綁定一個事件,但是委託給它所屬的每一個子對象了,因此每一個子對象都具有添加進的功能
書寫格式如下:

$("ul").on("click","li",function () {
        alert(23333);
    })

2、頁面載入
意思就是等整個頁面都加載完了以後再去啓動script的內容
格式如下:

$(function(){
        $("ul li").html(12345);
    })

3、練習代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>事件委託</title>
<script src="jquery-3.4.1.js"></script>
<script>
    //頁面載入:意思就是等整個頁面都加載完了以後再去啓動script的內容
    // $(document).ready(function () {
    //     $("ul li").html(12345); //這樣即使放在ul和li的前面也能查詢到它們
    // });
    //簡寫
    // $(function(){
    //     $("ul li").html(12345);
    // })

    //事件委託:其實就是給ul綁定事件,但是委託給它所屬的每一個li了,因此每一個li都具有alert(23333)的功能
    $("ul").on("click","li",function () {
        alert(23333);
    })

    //按順序增加標籤
    $(".b1").click(function() {
        var $ele=$("<li>");  //創建一個li標籤,
        var len=$("ul li").length;  //將len賦值爲ul列表的長度
        $ele.html((len+1)*1111);
        $("ul").append($ele);
    })
</script>
</head>

<body>
<ul>
    <li>1111</li>
    <li>2222</li>
    <li>3333</li>
    <li>4444</li>
    <li>5555</li>
</ul>

<button class="b1">點我</button>

</body>
</html>

1

二、JS的動畫效果

1、顯示與隱藏

  • 顯示:show()
  • 隱藏:hide()
  • 切換顯示隱藏:toggle()

2、滑動效果

  • 滑出:slideDown()
  • 滑入:slideUp()
  • 結合滑入滑出:slideToggle()

3、練習代碼(顯示隱藏、滑動)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>動畫效果</title>
    <style>
        .div1{
            height: 200px;
            width: 100%;
            background-color: tomato;
        }
    </style>
</head>
<body>
<div class="div1">How amazing!</div>
<!--<button class="b1">顯示</button>-->
<!--<button class="b2">隱藏</button>-->
<!--<button class="b3">切換</button>-->

<button class="b1">滑入</button>
<button class="b2">滑出</button>
<button class="b3">滑動</button>


<script src="jquery-3.4.1.js"></script>
<script>
//顯示與隱藏
//     $(".b1").click(function () {
//         $("div").show(1000);  //用1000毫秒事件完成動作
//     })
//
//     $(".b2").click(function(){
//         $("div").hide(1000);
//     })
//
//     //toggle結合了show和hide,如果顯示則隱藏,如果隱藏則顯示
//     $(".b3").click(function(){
//         $("div").toggle(1000);
//     })

//slideDown滑出,slideUp滑入,slideToggle結合劃入劃出
    $(".b1").click(function () {
        $("div").slideUp(1000);  //用1000毫秒事件完成動作
    })

    $(".b2").click(function(){
        $("div").slideDown(1000);
    })

    //slideToggle結合了slideUp和slideDown
    $(".b3").click(function(){
        $("div").slideToggle(1000);
    })
</script>
</body>
</html>

4、漸變效果

  • 漸入:fadeIn()
  • 漸出:fadeOut()
  • 結合漸入漸出fadeToggle()
  • 到指定透明度停止:fadeTo()

5、練習代碼(漸變效果)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>漸入漸出</title>
    <style>
        .div1{
            height: 200px;
            width: 100%;
            background-color: tomato;
        }
    </style>
</head>
<body>
<div class="div1">How amazing!</div>
<button class="b1">漸入</button>
<button class="b2">漸出</button>
<button class="b3">漸變</button>
<button class="b4">漸停</button>


<script src="jquery-3.4.1.js"></script>
<script>
//fadeIn漸入,fadeOut漸出,fadeToggle結合漸入漸出,fadeTo到指定透明度停止
    $(".b1").click(function () {
        $("div").fadeIn(1000,function () {  //第二個參數是回調函數,表示在動畫效果執行結束後會觸發的操作
            alert("已漸漸出現!");
        });  //用1000毫秒事件完成動作
    })

    $(".b2").click(function(){
        $("div").fadeOut(1000,function(){
            alert("已漸漸隱藏!");
        });
    })

    //fadeToggle結合了fadeIn和fadeOut
    $(".b3").click(function(){
        $("div").fadeToggle(1000,function () {
            alert("已完成漸變效果!")
        });
    })

    $(".b4").click(function(){
        $("div").fadeTo(1000,0.5,function () {
            alert("已實現漸變效果並停止!")
        });  //表示1000毫秒的動畫效果,停止在透明度爲0.5的時候
    })
</script>
</body>
</html>

三、擴展插件

簡單來說就自定義函數來實現特定的功能
1、格式

//擴展自定義插件Myprint
    $.extend({
        Myprint:function(){
            alert("我是自定義的動作!");
        }
    })
    //調用自定義插件
    $.Myprint();

2、練習代碼

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>擴展插件</title>
</head>
<body>
<p>1111</p>
<p>2222</p>
<p>3333</p>
<p>4444</p>


<script src="jquery-3.4.1.js"></script>
<script>
    // //擴展自定義插件Myprint
    // $.extend({
    //     Myprint:function(){
    //         alert("我是自定義的動作!");
    //     }
    // })
    // //調用自定義插件
    // $.Myprint();


    //定義一個獲取文本的插件Gettext
    $.fn.extend({
        Gettext:function(){
            console.log($(this).html());  //獲取每一個標籤的文本
        }
    })
    //調用:用jQuery循環each來遍歷每一個p標籤
    $("p").each(function() {
        $(this).Gettext();
    })
</script>
</body>
</html>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章