首页 前端知识 【JavaScript Day23】jQuery事件绑定及动画

【JavaScript Day23】jQuery事件绑定及动画

2025-03-01 12:03:01 前端知识 前端哥 656 598 我要收藏

目录

元素内容操作

jQuery事件绑定

jQuery事件删除

jQuery的融合事件

jQuery的动画


元素内容操作

<input type="button" value="末尾添加元素" οnclick="addChild()">
    <input type="button" value="末尾添加元素" οnclick="addChild2()">
    <input type="button" value="首位添加元素" οnclick="addChild3()">


    <div id="app">
        <h4>静态标签</h4>
    </div>
    <script>
        // append
        // appendTo
        // prepend
        // prependTo 
        // 可接收字符串作为元素进行追加,这些方法会自动将符合格式字符串转换为DOM对象

        function addChild(){
            // $("#app").html("<p>html()</p>") // 覆盖操作

            // 创建一个p标签
            var $p = $(`<p class="a" style="color:red;">内容</p>`)

            console.log($p);
            // 将新标签追加到 id=app得容器中

            // 容器.append(新元素) 在容器中追加新元素 , 返回容器
            var $temp = $("#app").append($p);  // 在 #app 容器得末尾追加新得元素 $p
            console.log($temp);
            $temp.css("background-color","#ccc"); // 为容器增加样式
        }

        function addChild2(){
            // 创建一个p标签
            var $p = $(`<p class="a" style="color:red;">内容</p>`)

            console.log($p);
            // 将新标签追加到 id=app得容器中
            
            // 新元素.appendTo( 容器 )  将新元素追加指定容器末尾 , 返回新元素
            var $temp = $p.appendTo( $("#app") );
            console.log($temp);
            $temp.css("background-color","#ccc"); // 给新元素增加样式
        }

        function addChild3(){
            // 通过链式调用 prepend 方法
            // 容器.prepend(新元素)
            // $("#app").prepend( $(`<p class="a" style="color:red;">内容</p>`) );
            // 简化
            // $("#app").prepend( `<p class="a" style="color:red;">内容</p>` );

            // 新元素.prependTo(容器)
            // $(`<p class="a" style="color:red;">内容</p>`).prependTo( $("#app") )
            // 简化
            $(`<p class="a" style="color:red;">内容</p>`).prependTo( "#app" )

        }
    </script>

jQuery事件绑定

<ul id="list">
        <li>元素内容1</li>
        <li>元素内容2</li>
        <li>元素内容3</li>
        <li>元素内容4</li>
        <li>元素内容5</li>
        <li>元素内容6</li>
        <li>元素内容7</li>
        <li>元素内容8</li>
        <li>元素内容9</li>
        <li>元素内容10</li>
    </ul>
    <script>
        // 事件绑定 jqObj.事件名(callback)
        function initEvent(){
            // 事件绑定属于 赋值操作,会触发内置循环
            $("#list>li").click(function(){
                // 将符合条件得所有元素得颜色取消
                $("#list>li").css("color",""); 

                // 为页面中 id=list得所有li子元素绑定click事件
                // 事件执行方法为当前回调函数
                console.log("li");
                // 获取事件触发得对应元素对象 => this => DOM对象
                console.log(this);
                // 将DOM转换为jquery对象 => $(DOM对象)
                var $target = $(this);
                console.log($target);
                $target.css("color","red");
            })
        }
        initEvent();

        setTimeout(function(){
            // 5s之后自动点击元素9
            // 事件直接触发  jqObj.事件名()
            $("#list>li:nth-child(9)").click();

            // jQuery得事件触发方法,会自动完成循环,对所有符合条件得元素都进行触发
            // $("#list>li").click();
        },5000)
    </script>

   <ul id="list">
        <li>元素内容1</li>
        <li>元素内容2</li>
        <li>元素内容3</li>
        <li>元素内容4</li>
        <li>元素内容5</li>
        <li>元素内容6</li>
    </ul>
    <script>
        // jqObj.on("事件名",callback)
        function initEvent(){
            $("#list>li").on("click",function(){
                $("#list>li").css("color","");
                // 通过 on 方法绑定 click事件,事件执行为当前回调方法
                $(this).css("color","red");
            });
        }
        initEvent();

        // 使用on方式绑定得事件,可以通过 jqObj.trigger(事件名) 完成触发
        setTimeout(function(){
            $("#list>li:nth-child(5)").trigger("click");
        },5000)
    </script>

jQuery事件删除

 <ul>
        <li id="item">事件删除</li>
    </ul>
    <input type="button" value="事件绑定" οnclick="bindEvent()">
    <input type="button" value="事件删除" οnclick="removeEvent()">
    <script>
        function bindEvent(){
            // $("#item").click(function(){
            //     alert("click事件绑定")
            // })
            $("#item").on("click",function(){
                alert("on事件绑定")
            })
        }

        function removeEvent(){
           // 因为jquery提供事件绑定规则,采用addEventListener方法完成
           // 对于addEventListener绑定的事件,只能removeEventListener删除
           // 内置循环-对当前元素对于的指定事件的所有回调都进行删除
           $("#item").off("click"); 
        }
    </script>

jQuery的融合事件

  <div id="item">元素</div>
    <script>
        // hover 事件是 jquery提供对 mouseover 和 mouseout 同时绑定的事件
        // hover( callback1,callback2 )
        //      callback1 对应 mouseover 事件回调
        //      callback1 对应 mouseout 事件回调
        $("#item").hover(function(){
            // 绑定 mouseover 事件,指定回调函数
            $(this).css("background-color","#ccc");
        },function(){
            // 绑定 mouseout 事件,指定回调函数
            $(this).css("background-color","");
        });
    </script>

jQuery的动画

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 300px;
            height: 300px;
            background-color: aquamarine;
        }
        .ball{
            width: 50px;
            height: 50px;
            background-color: brown;
            /* border-radius: 50%; */
        }
    </style>
    <script src="./jquery/jquery-3.7.1.js"></script>
</head>
<body>
    <input type="button" value="hide隐藏元素" οnclick="hideFun()">
    <input type="button" value="show显示元素" οnclick="showFun()">
    <hr>
    <input type="button" value="slideUp隐藏元素" οnclick="slideUpFun()">
    <input type="button" value="slideDown显示元素" οnclick="slideDownFun()">
    <input type="button" value="隐藏/显示元素" οnclick="slideToggleFun()">

    <hr>
    <div class="box"></div>

    <script>
        // 宽高和透明度
        function hideFun(){
            // $(".box").hide(); // 基本隐藏操作 - 无动画 normal
            // $(".box").hide("slow") // slow fast
            $(".box").hide(8000) // 毫秒值

        }
        function showFun(){
            // $(".box").show(); // 基本显示操作 - 无动画
            $(".box").show(8000)
        }

        function slideUpFun(){
            $(".box").slideUp(4000)
        }
        function slideDownFun(){
            $(".box").slideDown(4000)
        }
        function slideToggleFun(){
            $(".box").slideToggle();
        }
    </script>
    <hr>
    <div class="ball" id="ball"></div>
    <input type="button" value="移动元素" οnclick="moveBall()">
    <script>
        function moveBall(){
            $("#ball").animate( {
                marginLeft:"200px",
                borderRadius:"50%"
            },3000,function(){
                // 动画执行完成后调用的方法
                // alert("动画执行完成")
                $("#ball").animate({
                    marginLeft:"0px",
                },3000)
            } )
        }
    </script>
</body>
</html>

转载请注明出处或者链接地址:https://www.qianduange.cn//article/22072.html
标签
评论
发布的文章

算法002——复写零

2025-03-02 13:03:05

github上传代码(自用)

2025-03-02 13:03:59

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!