jQuery介绍与基本使用

本文档详细介绍了jQuery的基本用法,包括入口、选择器、属性操作、CSS样式、节点遍历、效果展示等。从入门到进阶,涵盖了jQuery在网页交互中的常见操作,如元素选取、事件处理、动画效果、DOM操作等。
摘要由CSDN通过智能技术生成

jQuery 入口

在使用jQuery前,需先导入jQuery文件。压缩版为佳。
当脚本位于html内容前,需要为jQuery创建一个入口(window.οnlοad=function(){}同理),位于内容末尾则不用。
入口有两种写法,一种为简洁入口,一种为标准入口。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../jquery-3.5.1.min.js"></script>
    <script>
        //简洁入口
        $(function(){

            $("h1").css("color","blue");
            $("#btid").click(function(){
                alert("点击成功");
            });
        });
        //标准入口
        $(document).ready(function(){
            $("h1").css("color","blue");
            $("#btid").click(function(){
                alert("点击成功");
            });
        });
    </script>
</head>
<body>
    <h1>jQuery基本使用</h1>
    <button id="btid" >提交</button>    
</body>
</html>

层级选择器

与css关系选择器同理
https://blog.csdn.net/Just__2009/article/details/108798358

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jQuery实例</title>
</head>
<body>
    <h1 id="hid">jQuery实例--层级选择器</h1>
    <ul>
        <li>aaaaaa</li>
        <li>bbbbbb</li>
        <li>cccccc</li>
        <ol>
            <li>ddddd</li>
            <li>ddddd</li>
            <li>ddddd</li>
        </ol>
    </ul>
    <li>ccccc</li>
    <li>ddddd</li>
    <li>eeeee</li>

    <script src="./jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取ul中所有子元素节点li(包括后代节点),并设置样式
            //$("ul li").css("color","red"); 
            
            //获取ul中所有直接子元素节点li(包括后代节点),并设置样式
            //$("ul>li").css("color","red");

            //获取ul同级紧邻后面的第一个兄弟节点li,并设置样式
            //$("ul+li").css("color","red");

            //获取ul后面所有同级兄弟li元素节点,并设置样式
            $("ul~li").css("color","red");
        });
       
    </script>
</body>
</html>

选择器之基本筛选器

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>筛选器</title>
</head>
<body>
    <h1 id="hid">筛选器</h1>
    <ul>
        <li>aaaaaa</li>
        <li class="cc">bbbbbb</li>
        <li>cccccc</li>
        <li class="cc">ddddd</li>
        <li>eeeee</li>
        <li>ffffff</li>
    </ul>

    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取所有li节点并设置样式
            //$("li").css("color","red");

            //获取第一个li节点并设置样式
            //$("li:first").css("color","red");

            //获取最后一个li节点并设置样式
            //$("li:last").css("color","red");

            //获取偶数索引号对应的所有li节点并设置样式
            //$("li:even").css("color","red");

            //获取奇数索引号对应的所有li节点并设置样式
            //$("li:odd").css("color","red");

            //获取class属性值为cc的所有li节点并设置样式
            //$("li.cc").css("color","red");

            //获取class属性值不为cc的所有li节点并设置样式
            //$("li:not(.cc)").css("color","red");

            //获取索引位置为2的li节点并设置样式
            //$("li:eq(2)").css("color","red");

            //获取前2个li节点并设置样式
            //$("li:lt(2)").css("color","red");

            //获取所有li节点并添加鼠标移入和移出事件
            $("li").mouseover(function(){
                $(this).animate({paddingLeft:"+=20"},800);
            }).mouseout(function(){
                $(this).animate({paddingLeft:"-=20"},500);
            });
        });
       
    </script>
</body>
</html>

属性选择器

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>属性选择器</title>
</head>
<body>
    <h1 id="hid">属性选择器</h1>
    <form>
        姓名:<input type="text" name="uname" value="zhangsan"/><br/><br/>
        年龄:<input type="text" name="age"/><br/><br/>
        邮箱:<input type="text" name="email"/><br/><br/>
        电话:<input type="text" name="phone"/><br/><br/>
        地址:<input type="text" name="address"/><br/><br/>
    </form>

    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取所有含有value属性的input元素标签,并设置样式
            //$("input[value]").css("border","1px solid red");

            //获取name属性值为phone的input元素标签,并设置样式
            //$("input[name='phone']").css("border","1px solid red");

            //获取name属性值不为phone的input元素标签,并设置样式
            //$("input[name!='phone']").css("border","1px solid red");

            //获取name属性值是以a字符开头的所有input元素标签,并设置样式
            //$("input[name^='a']").css("border","1px solid red");

            //获取name属性值是以e字符结尾的所有input元素标签,并设置样式
            //$("input[name$='e']").css("border","1px solid red");

            //获取name属性值中含有m字符的所有input元素标签,并设置样式
            $("input[name*='m']").css("border","1px solid red");
        });
       
    </script>
</body>
</html>

选择器之子元素选择器

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>子元素选择器</title>
</head>
<body>
    <h1 id="hid">子元素选择器</h1>
    <ul>
        <li>aaaaaaa</li>
        <li>bbbbbbb</li>
        <li>ccccccc</li>
        <li>ddddddd</li>
        <li>eeeeeee</li>
    </ul>
    <ul>
        <li>1111111</li>
        <li>2222222</li>
        <li>3333333</li>
        <li>4444444</li>
        <li>5555555</li>
    </ul>

    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取每组ul中的第一个li节点并添加样式
            //$("ul li:first-child").css("color","red");

            //获取每组ul中的最后一个li节点并添加样式
            //$("ul li:last-child").css("color","red");

            //获取每组ul中的第三个li节点并添加样式
            $("ul li:nth-child(3)").css("color","red");
        });
       
    </script>
</body>
</html>

选择器-表单选择器

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>表单选择器</title>
</head>
<body>
    <h1 id="hid">表单选择器</h1>
    <ul>
        <li><input type="checkbox" name="likes[]" value="1"/> aaaaaaa</li>
        <li><input type="checkbox" name="likes[]" value="2"/> bbbbbbb</li>
        <li><input type="checkbox" name="likes[]" value="3"/> ccccccc</li>
        <li><input type="checkbox" name="likes[]" value="4"/> ddddddd</li>
        <li><input type="checkbox" name="likes[]" value="5"/> eeeeeee</li>
    </ul>
   <button onclick="doFun()">获取</button>

    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        function doFun(){
            //获取所有多选框中选择中的元素节点
            //var list = $("input[type='checkbox']:checked");
            var list = $(":checkbox:checked");
            alert(list.length);
            
            //获取li元素节点(条件是里面的多选框必须选中),并设置样式
            $("li:has(input:checked)").css("color","red");
        }
       
    </script>
</body>
</html>

属性操作

attr()方法

一参方法为获取。
两参方法为创建或修改。

prop()和attr()的区别

  • attr()属于XML DOM操作 (可用于所有节点,适用性更广)
  • prop() 属于HTML DOM操作
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jQuery实例</title>
</head>
<body>
    <h1 id="hid">jQuery实例--jQuery属性操作</h1>
    
    <a id="aid" href="http://www.baidu.com" title="百度链接">百度</a><br/><br/>

    <button onclick="dofun()">更改链接属性</button>
    
    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        function dofun(){
            var a = $("#aid");
            console.log(a.attr("href")); //获取
            console.log(a.prop("href")); //获取
            console.log(a.attr("title"));
            console.log(a.prop("title"));
            a.attr("href","http://news.baidu.com"); //添加或更改
            a.removeAttr("title"); //删除属性
            //a.attr("aa","bb"); //添加属性
            // a.prop("aa","bb"); //添加属性 prop方法不可以添加不能存在的属性
            a.prop("title","百度新闻"); //只支持HTML DOM的属性操作
           
        }
       
    </script>
</body>
</html>

CSS类属性操作

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS类属性操作</title>
    <style>
        ul,li{padding:0px;margin:0px;}
        ul.uu{list-style:none;}
        ul.uu li{line-height:40px;padding-left:20px;margin:5px;background-color:#ddd;}
        ul.uu li:hover{background-color:#fc0;}
        ul.uu li.active{background-color: #f0c;}
    </style>
</head>
<body>
    <h1 id="hid">class类操作</h1>
    <ul class="uu">
        <li>苹果</li>
        <li>橘子</li>
        <li>哈密瓜</li>
        <li>菠萝</li>
        <li>芒果</li>
    </ul>
    
    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取上面所有的li节点并添加点击事件
            $("ul.uu li").click(function(){
                //切换class类属性
                $(this).toggleClass("active");
                /*
                //判断当前节点li是否含有active class属性
                if($(this).hasClass('active')){
                    //删除class类属性
                    $(this).removeClass("active");
                }else{
                    //添加class类属性
                    $(this).addClass("active");
                }
                */
            });
        });
       
    </script>
</body>
</html>

html文本与值操作

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title> html文本与值操作</title>
</head>
<body>
    <h1 id="hid"> html文本与值操作</h1>
    <ul>
        <li class="c1"><a href="http://www.baidu.com">百度</a></li>
        <li class="c2"><a href="http://www.163.com">网易</a></li>
        <li class="c3"><a href="http://www.qq.com">腾讯</a></li>
        <li class="c4"><a href="http://www.sina.com">新浪</a></li>
    </ul>
    搜索:<input type="text" name="kw" value="html"/> <button>搜索</button>
    <br/><br/>

    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            console.log($("li.c1").html()); //类似于js中的innerHTML
            console.log($("li.c2").text());
            $("li.c3").html('<a href="http://www.qq.com">腾讯2</a>');
            $("li.c4").text('<a>新浪2</a>');

            console.log($("input[name='kw']").val());
            $("input[name='kw']").val('CSS样式');

        });
       
    </script>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title> html文本与值操作</title>
</head>
<body>
    <h1 id="hid"> html文本与值操作</h1>
    <ul class="uu">
        <li><input type="checkbox" name="likes[]" value="1"/> 苹果</li>
        <li><input type="checkbox" name="likes[]" value="2"/> 橘子</li>
        <li><input type="checkbox" name="likes[]" value="3"/> 哈密瓜</li>
        <li><input type="checkbox" name="likes[]" value="4"/> 菠萝</li>
        <li><input type="checkbox" name="likes[]" value="5"/> 芒果</li>
    </ul>
    <button>全选</button>
    <button>全不选</button>
    <button>反选</button>

    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取按钮并绑定点击事件
            $("button").click(function(){
                //判断按钮上的文本,指定对应的操作
                switch($(this).html()){
                    case "全选":
                        //获取所有多选框并设置选中
                        $("ul.uu input:checkbox").prop("checked",true);
                        break;
                    case "全不选":
                        $("ul.uu input:checkbox").prop("checked",false);
                        break;
                    case "反选":
                        $("ul.uu input:checkbox").each(function(){
                            $(this).prop("checked",!$(this).prop("checked"));
                        });
                        break;
                }
            });
        });
       
    </script>
</body>
</html>

CSS样式操作

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>CSS样式操作</title>
    <style>
        *{padding:0px;margin:0px;}
        #outer{background-color:#ddd;width:400px;height:400px;margin:50px;padding:20px;position:relative;}
        #inner{background-color:#fc0;width:200px;height:200px;position:absolute;}
    </style>
</head>
<body>
    <h1 id="hid">CSS样式操作</h1>
    <div id="outer">
        <div id="inner"></div>
    </div>

    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取标题并设置css样式
            //$("#hid").css("color","red"); //单个属性设置
            $("#hid").css({"color":"green","background-color":"#ddd"});
            console.log($("#hid").css("color")); //获取css属性
            //获取div层的位置
            var offset = $("#inner").offset();
            console.log(offset.left,offset.top);
            //获取偏移位置
            var position = $("#inner").position();
            console.log(position.left,position.top);
            //获取尺寸
            console.log($("#inner").width(),$("#inner").height());
            $("#inner").width(300)
        });
       
    </script>
</body>
</html>

节点遍历

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>节点遍历</title>
</head>
<body>
    <h1 id="hid">节点遍历操作</h1>
    <ul>
        <li>2</li>
        <li>1</li>
        <li>10</li>
        <li>18</li>
        <li>8</li>
    </ul>
    <button>乘以2</button>

    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
           $("button").click(function(){
               //$("li").css("color","red");
               //获取li节点并遍历执行操作
               $("li").each(function(i){
                    //alert(i); //索引位置
                    $(this).html($(this).html()*2);
               });
           });

           /*
           //统一绑定点击事件
           $("li").click(function(){
               alert($(this).html());
           });
           */
        });
    </script>
</body>
</html>

文档处理之内部插入

在标签内部插入新的子标签

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>内部插入</title>
</head>
<body>
    <h1 id="hid">内部插入</h1>
    <ul class="uu">
        <li>苹果</li>
        <li>橘子</li>
        <li>哈密瓜</li>
    </ul>
    名称:<input type="text" name="tname"/>
    <button>前添加</button>
    <button>后追加</button>
    
    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取按钮并绑定点击事件
            $("button").click(function(){
                //获取输入框中的内容
                var tname = $("input[name='tname']").val();
                //获取上的内容判断执行对应的操作
                switch($(this).html()){
                    case "前添加":
                        //$("ul.uu").prepend("<li>"+tname+"</li>");
                        $("<li>"+tname+"</li>").prependTo("ul.uu");
                        break;
                    case "后追加":
                        //$("ul.uu").append("<li>"+tname+"</li>");
                        $("<li>"+tname+"</li>").appendTo("ul.uu");
                        break;
                }
            });
        });
    </script>
</body>
</html>

文档处理之外部插入

在标签外部插入一个同级的标签
$(位置元素).before(新元素)
$(位置元素).after(新元素)

$(新元素).insertBefore(位置元素)
$(insertAfter).insertAfter(位置元素)

  1. 获取所有期望点击标签,并绑定点击事件。
  2. 点击事件为添加或减少属性,属性可导致css样式修改。
  3. 获取所有按钮标签,并绑定点击事件。
  4. 获取输入框内容。
  5. 对不同按钮中的文本内容做判断区分。
  6. 通过使用以上方法实现外部插入。
  7. 插入新标签的同时绑定标签点击事件。
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>外部插入</title>
    <style>
        ul,li{padding:0px;margin:0px;}
        ul.uu{list-style:none;}
        ul.uu li{line-height:40px;padding-left:20px;margin:5px;background-color:#ddd;}
        ul.uu li:hover{background-color:#fc0;}
        ul.uu li.active{background-color: #f0c;}
    </style>
</head>
<body>
    <h1 id="hid">外部插入</h1>
    <ul class="uu">
        <li class="active">苹果</li>
        <li>橘子</li>
        <li>哈密瓜</li>
        <li>菠萝</li>
        <li>芒果</li>
    </ul>
    名称:<input type="text" name="tname"/>
    <button>前添加</button>
    <button>后追加</button>
    
    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取所有的li节点并绑定点击事件
            $("ul.uu li").click(function(){
                $("ul.uu li").removeClass("active");
                $(this).addClass("active");
            });
            //获取所有按钮并绑定点击事件
            $("button").click(function(){
                //获取输入框中的内容
                var tname = $("input[name='tname']").val();
                //获取按钮上的文本并判断执行对应操作
                switch($(this).html()){
                    case "前添加":
                        //$("li.active").before("<li>"+tname+"</li>");
                        $("<li>"+tname+"</li>").insertBefore("li.active");
                        break;
                    case "后追加":
                        //$("li.active").after("<li>"+tname+"</li>");
                        $("<li>"+tname+"</li>")
                            .insertAfter("li.active")
                            .click(function(){
                                $("ul.uu li").removeClass("active");
                                $(this).addClass("active");
                            });
                        break;
                }
            });
        });
       
    </script>
</body>
</html>

外部插入和删除

$(标签).focus(function(){});
为标签添加焦点功能
$(标签).blur(function(){});
为标签添加失去焦点功能
$(标签).next(标签).remove();

  1. 获取所有标签,并为标签添加焦点功能。
  2. 在所点击标签后面通过外部插入的方法添加一个文本标签。
  3. 为所有标签添加失去焦点功能。
  4. 通过next()方法获取此标签后的目标标签,再通过remove()方法删除目标标签。
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>外部插入和删除</title>
</head>
<body>
    <h1 id="hid">外部插入和删除</h1>
    <form>
        姓名:<input type="text" title="姓名" name="uname"/><br/><br/>
        年龄:<input type="text" title="年龄" name="age"/><br/><br/>
        邮箱:<input type="text" title="邮箱" name="email"/><br/><br/>
        电话:<input type="text" title="电话" name="phone"/><br/><br/>
        地址:<input type="text" title="地址" name="address"/><br/><br/>
    </form>
    <br/><br/>

    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取所有的输入框并绑定获得和失去焦点事件
            $("input:text").focus(function(){
                //获得焦点事件处理
                var title = $(this).attr("title");
                $("<span> 请输入正确的"+title+"信息</span>").insertAfter(this).css("color","#ddd");
            }).blur(function(){
                //失去焦点事件处理
                $(this).next("span").remove();
            });

        });
       
    </script>
</body>
</html>

节点的删除操作

$(标签).remove();
删除此标签。
$(标签).empty();
删除此标签下的所有子标签。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>节点删除操作</title>
    <style>
        ul,li{padding:0px;margin:0px;}
        ul.uu{list-style:none;}
        ul.uu li{line-height:40px;padding-left:20px;margin:5px;background-color:#ddd;}
        ul.uu li:hover{background-color:#fc0;}
        ul.uu li.active{background-color: #f0c;}
    </style>
</head>
<body>
    <h1 id="hid">节点删除操作</h1>
    <ul class="uu">
        <li></li>
        <li></li>
        <li></li>
        <li></li>
        <li></li>
    </ul>
    <button>删除</button>
    <button>清空</button>
    
    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取li节点并添加选中效果
            $("ul.uu li").click(function(){
                $(this).toggleClass("active");
            });
            //获取按钮并绑定点击事件
            $("button").click(function(){
                //根据按钮上的文本执行对象操作
                switch($(this).html()){
                    case "删除":
                        $("li.active").remove();
                        break;
                    case "清空":
                        $("ul.uu").empty();
                        break;
                }
            });
        });
       
    </script>
</body>
</html>

效果展示 显示与隐藏

.stop()通过stop方法来终止显示队列。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>jQuery实例</title>
</head>
<body>
    <h1 id="hid">特效展示</h1>
    <button>显示</button>
    <button>隐藏</button>
    <button>切换</button><br/><br/>
    <img src="./images/1.jpg" width="300"/>
    
    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
           //获取按钮并绑定点击事件
           $("button").click(function(){
               //判断按钮上的文本并执行对应的操作
               switch($(this).html()){
                    case "显示":
                        //$("img").show("slow");
                        //$("img").slideDown("slow");
                        $("img").fadeIn("slow");
                        break;
                    case "隐藏":
                        //$("img").hide("slow");
                        //$("img").slideUp("slow");
                        $("img").fadeOut("slow");
                        break;
                    case "切换":
                        //$("img").toggle("slow");
                        //$("img").slideToggle("slow");
                        //$("img").fadeToggle("slow");
                        $("img").stop().toggle("slow");
                        break;

               }
           });
        });
    </script>
</body>
</html>

标签滚动特效

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>标签滚动特效</title>
    <style>
        ul,li{margin:0px;padding:0px;}
        ul{width:400px;list-style:none;}
        ul li{line-height:80px;margin-bottom:2px;background-color:#ddd;}
        #did{width:400px;height:326px;border:1px solid #fc0;overflow:hidden;}
    </style>
</head>
<body>
    <h1 id="hid">标签滚动特效</h1>
    <div id="did">
        <ul class="uu">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
    
    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //定时每隔3秒后执行一次
            setInterval(function(){
                //获取ul中的最后一个li节点设置隐藏后添加到ul里面的最前面,并设置滑动显示
                //$("ul.uu li:last").hide().prependTo("ul.uu").slideDown("slow");

                //向上滚动展示
                $("ul.uu li:first").slideUp("slow",function(){
                    $(this).appendTo("ul.uu").show();
                });
                
            },3000);
        });
    </script>
</body>
</html>

下拉菜单

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>下拉菜单</title>
    <style>
        ul.uu{display:none;}
        h4{line-height:40px;}
        h4:hover{background-color:#ddd;}
    </style>
</head>
<body>
    <h1 id="hid">下拉菜单</h1>
    <h4>水果系列</h4>
    <ul class="uu">
        <li>苹果</li>
        <li>橘子</li>
        <li>哈密瓜</li>
    </ul>
    <h4>水果系列</h4>
    <ul class="uu">
        <li>苹果</li>
        <li>橘子</li>
        <li>哈密瓜</li>
    </ul>
    <h4>水果系列</h4>
    <ul class="uu">
        <li>苹果</li>
        <li>橘子</li>
        <li>哈密瓜</li>
    </ul>
    <br/><br/>

    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取上面所有的h4标题并绑定点击事件
            $("h4").click(function(){
                //获取当前h4紧邻的兄弟ul节点,并滑动展开显示
                $(this).next("ul.uu").slideToggle("slow")
            });
        });
       
    </script>
</body>
</html>

选项卡

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>选项卡</title>
    <style>
        ul,li,div{margin:0px;padding:0px;}
        #did .header ul{list-style:none;}
        #did .header ul li{line-height:50px;width:120px;float:left;margin-right:4px;background-color:#ddd;}
        #did .header ul li:hover{background-color:#fc0;}
        #did .body{clear:both;width:500px;height:400px;border:1px solid #ddd;}
        #did .body .cc{display:none;height:400px;}
        #did .header ul li.b1,#did .body div.d1{background-color:red;}
        #did .header ul li.b2,#did .body div.d2{background-color:green;}
        #did .header ul li.b3,#did .body div.d3{background-color:blue;}
    </style>
</head>
<body>
    <h1 id="hid">选项卡</h1>
    <div id="did">
        <div class="header">
            <ul>
                <li class="b1">aaa</li>
                <li class="b2">bbb</li>
                <li class="b3">ccc</li>
                <li>ddddd</li>
            </ul>
        </div>
        <div class="body">
            <div class="cc d1">AAA</div>
            <div class="cc d2">BBB</div>
            <div class="cc d3">CCC</div>
            <div class="cc">DDDD</div>
        </div>
    </div>
    
    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
           //获取上面header头中ul里面的所有li节点,并绑定鼠标移入事件
           $("#did .header ul li").mouseover(function(){
               //获取事件源对象li的索引位置
               var m = $(this).index();
               //隐藏所有body层
               $("#did .body div").hide();
               //显示索引位置m对应的div层
               $("#did .body div").eq(m).fadeIn("slow");

           });
        });
       
    </script>
</body>
</html>

导航栏

  1. 获取所有导航栏,并绑定鼠标移入和移出事件
  2. 移入事件:找到所有导航栏中正在播放的动画,停止并隐藏
  3. 移入事件:找到导航栏下所有内容标签,并显示
  4. 移出事件:将该导航栏下的内容隐藏
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>导航栏</title>
    <style>
        div,ul,li,a{margin:0px;padding:0px;}
        ul{list-style:none; position:absolute;}
        a{text-decoration:none;display:block;width:100px;line-height:40px;}
        a:hover{background-color:#fc0;}
        #menu{width:100%;height:40px;line-height:40px;}
        #menu ul li{width:100px;float:left;
                    line-height:40px;
                    background-color:#ddd;
                    text-align:center;
                    border-right:2px solid #fff;}
        #menu ul li ul.item li{border-top:2px solid #fff;}
        #menu ul li ul.item{display:none;position:relative;}
    </style>
</head>
<body>
    <h1 id="hid">导航栏效果</h1>
    <div id="menu">
        <ul>
            <li><a href="#">商品展示</a>
                <ul class="item">
                    <li><a href="#">热卖商品</a></li>
                    <li><a href="#">最新商品</a></li>
                    <li><a href="#">特价商品</a></li>
                    <li><a href="#">推荐商品</a></li>
                </ul>
            </li>
            <li><a href="#">站内新闻</a>
                <ul class="item">
                    <li><a href="#">国内新闻</a></li>
                    <li><a href="#">体育信息</a></li>
                    <li><a href="#">热点新闻</a></li>
                </ul>
            </li>
            <li><a href="#">网站公告</a>
                <ul class="item">
                    <li><a href="#">国内新闻</a></li>
                    <li><a href="#">体育信息</a></li>
                    <li><a href="#">热点新闻</a></li>
                    <li><a href="#">体育信息</a></li>
                    <li><a href="#">热点新闻</a></li>
                </ul>
            </li>
            <li><a href="#">关于我们</a>
                <ul class="item">
                    <li><a href="#">国内新闻</a></li>
                    <li><a href="#">体育信息</a></li>
                    <li><a href="#">热点新闻</a></li>
                </ul>
            </li>
            <li><a href="#">在线帮助</a></li>
        </ul>
    </div>
    
    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取所有菜单中li选项,并绑定鼠标移入和移出事件
            $("#menu ul li").mouseover(function(){
                //移入事件处理
                //$(this).find("ul.item").show();
                $("ul.item:animated").stop().hide();
                $(this).find("ul.item").slideDown("slow");
            }).mouseout(function(){
                //移出事件处理
                $(this).find("ul.item").hide();
            });
        });
       
    </script>
</body>
</html>

事件处理-鼠标移入

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>鼠标移入事件处理</title>
    <style>
        div,img,ul,li{margin:0px;padding:0px;}
        #did{width:384px;height:240px;}
        #list img{width:85px;border:2px solid #fff;margin-right:2px;}
        #list img:hover{border:2px solid red;}
    </style>
</head>
<body>
    <h1 id="hid">鼠标移入事件处理</h1>
    <div id="did">
        <img id="mid" src="./images/11.jpg" width="384"/>
    </div>
    <div id="list">
        <img src="./images/11.jpg"/>
        <img src="./images/22.jpg"/>
        <img src="./images/33.jpg"/>
        <img src="./images/44.jpg"/>
    </div>
    
    <script src="./jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取did层并绑定鼠标的移入和移出事件
            /*
            $("#did").mouseover(function(){
                console.log("鼠标移入。。。。");
            }).mouseout(function(){
                console.log("鼠标移出。。。。");
            });
            */
            //效果同上的代码
            /*
            $("#did").hover(function(){
                //鼠标移入事件处理
                console.log("鼠标移入111。。。。");
            },function(){
                //鼠标移出事件处理
                console.log("鼠标移出11。。。。");
            });
            */

            //获取图片列表并绑定鼠标移入事件
            $("#list img").mouseover(function(){
                $("#mid").attr("src",$(this).attr("src"));
            });
        });
    </script>
</body>
</html>

放大镜效果

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>放大镜效果</title>
    <style>
        div,img,ul,li{margin:0px;padding:0px;}
        #did{width:300px;height:300px;overflow:hidden;display:none;position:absolute;}    
    </style>
</head>
<body>
    <h1 id="hid">放大镜效果</h1>
    <br/><br/>
    <img id="mid" src="./images/s.jpg" width="384" height="240"/>
    <div id="did">
        <img src="./images/o.jpg"/>
    </div>
    <br/><br/>

    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取mid图片节点并绑定鼠标移入、移出和移动事件
            $("#mid").mouseover(function(){
                //获取被放大图片(事件源对象)的位置
                var offset = $(this).offset();
                //计算放大图层位置
                var y = offset.top;
                var x = offset.left+$(this).width()+5;
                //通过css对放大图层定位,并设置可见
                $("#did").css({top:y+"px",left:x+"px"}).show();
            }).mouseout(function(){
                //隐藏放大图层
                $("#did").hide(); 
            }).mousemove(function(e){
                //输出事件位置
                //console.log(e.pageX,e.pageY);
                //获取当前被放大图层位置
                var offset = $(this).offset();
                //计算鼠标在被放大图层上的位置
                var x = e.pageX - offset.left;
                var y = e.pageY - offset.top;
                //设置放大镜图层的滚动位置
                $("#did").scrollLeft(x*5-150).scrollTop(y*5-150);
            });
        });
       
    </script>
</body>
</html>

拖动事件

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>拖动效果</title>
    <style>
        div{margin:0px;padding:0px;}
        #did{width:200px;height:200px;background-color:#ddd;cursor:move;position:absolute;}
    </style>
</head>
<body>
    <h1 id="hid">拖动效果</h1>
    <div id="did"></div>
    
    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取拖动div层并绑定鼠标按下和抬起事件
            $("#did").mousedown(function(e){
                //设置背景颜色
                $(this).css("background-color","blue");
                //获取当前div层位置
                var offset = $(this).offset();
                //计算鼠标按在div层上的位置
                var x = e.pageX - offset.left;
                var y = e.pageY - offset.top;
                //绑定鼠标移动事件
                $(document).on("mousemove",function(en){
                    //定位div图层位置
                    $("#did").css({top:en.pageY-y+"px",left:en.pageX-x+"px"});
                });

            }).mouseup(function(){  
                $(this).css("background-color","#ddd");
                //取消鼠标移动事件
                $(document).off("mousemove");
            });
        }); 
    </script>
</body>
</html>

阻止事件冒泡

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>阻止事件冒泡</title>
    <style>
        #outer{width:400px;height:400px;background-color: #ddd;margin:50px;padding:20px;}
        #inner{width:200px;height:200px;background-color:#fc0;}
    </style>
</head>
<body>
    <h1 id="hid">阻止事件冒泡</h1>
    <div id="outer">
       <div id="inner"></div>
    </div>
    
    <script src="../jquery-3.5.0.min.js"></script>
    <script>
        //jquery入口
        $(function(){
            //获取div层并绑定点击事件
            $("#outer").click(function(){
                console.log("outer.....");
            });
            $("#inner").click(function(e){
                console.log("inner.....");
                //阻止事件冒泡(传播)
                e.stopPropagation();
            });
        });
       
    </script>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值