javaWeb(十七)----- JQuery高级

简介: javaWeb(十七)----- JQuery高级
    •  动画

    三种方式显示和隐藏元素:

    1. 默认显示和隐藏方式

    (1)show([speed,[easing],[fn]])

            参数:

                ① speed:动画的速度。三个预定义的值("slow","normal", "fast")或表示动画时长的毫秒数值(如:1000)

                ② easing:用来指定切换效果,默认是"swing",可用参数"linear"

                                * swing:动画执行时效果是 先慢,中间快,最后又慢

                                * linear:动画执行时速度是匀速的

                ③ fn:在动画完成时执行的函数,每个元素执行一次

    (2)hide([speed],[easing],[fn]])

    (3)toggle([speed],[easing],[fn])

    2. 滑动显示和隐藏方式

    (1)slideDown([speed],[easing],[fn])

    (2)slideUp([speed],[easing],[fn]])

    (3)slideToggle([speed],[easing],[fn])

    3. 淡入淡出显示和隐藏方式

    (1)fadeIn([speed],[easing],[fn])

    (2)fadeOut([speed],[easing],[fn])

    (3)fadeToggle([speed],[easing],[fn]])

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>Insert title here</title>
        <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
        <script>
            //点击按钮隐藏div
            function hideFn() {
                // $("#showDiv").hide("slow","swing",function() {
                //     alert("隐藏了...");
                // });
                //默认方式
                $("#showDiv").hide("slow","swing");
                //滑动方式
                $("#showDiv").slideUp("slow");
                //淡入淡出方式
                $("#showDiv").fadeOut("slow");
            }
            //点击按钮显示div
            function showFn() {
                // $("#showDiv").show("slow","swing",function() {
                //     alert("显示了...");
                // });
                //默认方式
                $("#showDiv").show("slow","swing");
                //滑动方式
                $("#showDiv").slideDown("slow");
                //淡入淡出方式
                $("#showDiv").fadeIn("slow");
            }
            //点击按钮切换div
            function toggleFn() {
                //默认方式
                $("#showDiv").toggle("slow");
                //滑动方式
                $("#showDiv").slideToggle("slow");
                //淡入淡出方式
                $("#showDiv").fadeToggle("slow");
            }
        </script>
    </head>
    <body>
    <input type="button" value="点击按钮隐藏div" onclick="hideFn()">
    <input type="button" value="点击按钮显示div" onclick="showFn()">
    <input type="button" value="点击按钮切换div显示和隐藏" onclick="toggleFn()">
    <div id="showDiv" style="width:300px;height:300px;background:pink">
        div显示和隐藏
    </div>
    </body>
    </html>

    image.gif

      • 遍历

      1. js的遍历方式 :for(初始化值;循环结束条件;步长)

      2. jq的遍历方式

      (1)jq对象.each(callback)

              语法:

                     jquery对象.each(function(index,element){});

                     * index:就是元素在集合中的索引

                     * element:就是集合中的每一个元素对象

                     * this:集合中的每一个元素对象

               回调函数返回值:

                     * true:如果当前function返回为false,则结束循环(break)

                     * false:如果当前function返回为true,则结束本次循环,继续下次循环(continue)

      (2)$.each(object, [callback])

      (3)for..of:jquery 3.0 版本之后提供的方式

              for(元素对象 of 容器对象)

      <!DOCTYPE html>
      <html>
      <head>
          <meta charset="UTF-8">
          <title></title>
          <script src="js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
          <script type="text/javascript">
      /*
              遍历
                  1. js的遍历方式
                   * for(初始化值;循环结束条件;步长)
                  2. jq的遍历方式
                      1. jq对象.each(callback)
                      2. $.each(object, [callback])
                      3. for..of:jquery 3.0 版本之后提供的方式
      */
              $(function () {
                  //1.获取所有的ul下的li
                  var citys = $("#city li");
          /*        //2.遍历li
                  for (var i = 0; i <citys.length ; i++) {
                      if("上海"==citys[i].innerHTML){
                           break ;  //结束循环
                           continue; //结束本次循环,继续下次循环
                      }
                      //获取内容
                      alert(i+":"+citys[i].innerHTML);
                  }
           */
                  //2.jq对象.each(callback)
          /*        citys.each(function (index,element) {
                      //3.1 获取li对象的第一种方式:this
                      // alert(this.innerHTML);
                      // alert($(this).html());
                      //3.2 获取li对象的第二种方式:在回调函数中定义参数 index(索引) element(元素对象)
                      // alert(index+":"+element.innerHTML);
                      // alert(index+":"+$(element).html());
                      //判断如果是上海,则结束循环
                      if ("上海"==$(element).html()){
                          //如果当前function返回为false,则结束循环(break)
                          //如果返回true,则结束本次循环,继续下次循环(continue)
                          return false;
                      }
                  });
           */
                  //3 $.each(Object,[callback]) 这种遍历方法只适用于jquery3.0版本
                  for (li of citys){
                      alert($(li).html());
                  }
              });
          </script>
      </head>
      <body>
      <ul id="city">
          <li>北京</li>
          <li>上海</li>
          <li>天津</li>
          <li>重庆</li>
      </ul>
      </body>
      </html>

      image.gif

        • 事件绑定

        1. jquery标准的绑定方式

           * jq对象.事件方法(回调函数);

           * 注:如果调用事件方法,不传递回调函数,则会触发浏览器默认行为

                   * 表单对象.submit();//让表单提交

        <!DOCTYPE html>
        <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <script src="js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
            <script type="text/javascript">
                $(function () {
                    //获取name对象,绑定click事件
                    // $("#name").click(function () {
                    //     alert("我被点击了...");
                    // });
                    //给name绑定鼠标移动到元素之上事件,绑定鼠标移出事件
                    // $("#name").mouseover(function () {
                    //     alert("鼠标来了...");
                    // });
                    //
                    // $("#name").mouseout(function () {
                    //     alert("鼠标走了...");
                    // });
                    alert("我要获得焦点...");
                    $("#name").focus();  //让文本输入框获得焦点
                    // 调用对应的事件方法,不进行传递回调函数的话,会触发浏览器默认的行为,让对象获得焦点
                });
            </script>
        </head>
        <body>
        <input id="name" type="text" value="绑定点击事件">
        </body>
        </html>

        image.gif

        2. on绑定事件/off解除绑定

           * jq对象.on("事件名称",回调函数)

           * jq对象.off("事件名称")

           * 如果off方法不传递任何参数,则将组件上的所有事件全部解绑

        <!DOCTYPE html>
        <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <script src="js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
            <script type="text/javascript">
                $(function () {
                   //1.使用on给按钮绑定单击事件  click
                   $("#btn").on("click",function () {
                       alert("我被点击了...")
                   }) ;
                   //2. 使用off解除btn按钮的单击事件
                    $("#btn2").click(function () {
                        //解除btn按钮的单击事件
                        //$("#btn").off("click");
                        $("#btn").off();//将组件上的所有事件全部解绑
                    });
                });
            </script>
        </head>
        <body>
        <input id="btn" type="button" value="使用on绑定点击事件">
        <input id="btn2" type="button" value="使用off解绑点击事件">
        </body>
        </html>

        image.gif

        3. 事件切换:toggle

           * jq对象.toggle(fn1,fn2...)

           * 当单击jq对象对应的组件后,会执行fn1,第二次点击会执行fn2.....

           * 注意:1.9版本 .toggle() 方法删除,jQuery Migrate(迁移)插件可以恢复此功能

                        <script src="../js/jquery-migrate-1.0.0.js" type="text/javascript" charset="utf-8"></script>

        <!DOCTYPE html>
        <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <script src="js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
            <script src="js/jquery-migrate-1.0.0.js" type="text/javascript" charset="utf-8"></script>
            <script type="text/javascript">
                $(function () {
                   //获取按钮,调用toggle方法
                   $("#btn").toggle(function () {
                       //改变div背景色backgroundColor 颜色为 green
                       $("#myDiv").css("backgroundColor","green");
                   },function () {
                       //改变div背景色backgroundColor 颜色为 pink
                       $("#myDiv").css("backgroundColor","pink");
                   });
                });
            </script>
        </head>
        <body>
            <input id="btn" type="button" value="事件切换">
            <div id="myDiv" style="width:300px;height:300px;background:pink">
                点击按钮变成绿色,再次点击红色
            </div>
        </body>
        </html>

        image.gif

          • 插件:增强JQuery的功能

          1. 实现方式:

          (1)$.fn.extend(object)

                  * 增强通过Jquery获取的对象的功能  $("#id")

          <!DOCTYPE html>
          <html>
          <head>
              <meta charset="UTF-8">
              <title>01-jQuery对象进行方法扩展</title>
              <script src="js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
              <script type="text/javascript">
                 //使用jquery插件 给jq对象添加2个方法 check()选中所有复选框,uncheck()取消选中所有复选框
                  //1.定义jqeury的对象插件
                  $.fn.extend({
                      //定义了一个check()方法。所有的jq对象都可以调用该方法
                      check:function () {
                         //让复选框选中
                          //this:调用该方法的jq对象
                          this.prop("checked",true);
                      },
                      uncheck:function () {
                          //让复选框不选中
                          this.prop("checked",false);
                      }
                  });
                  $(function () {
                     // 获取按钮
                      //$("#btn-check").check();
                      //复选框对象.check();
                      $("#btn-check").click(function () {
                          //获取复选框对象
                          $("input[type='checkbox']").check();
                      });
                      $("#btn-uncheck").click(function () {
                          //获取复选框对象
                          $("input[type='checkbox']").uncheck();
                      });
                  });
              </script>
          </head>
          <body>
          <input id="btn-check" type="button" value="点击选中复选框" onclick="checkFn()">
          <input id="btn-uncheck" type="button" value="点击取消复选框选中" onclick="uncheckFn()">
          <br/>
          <input type="checkbox" value="football">足球
          <input type="checkbox" value="basketball">篮球
          <input type="checkbox" value="volleyball">排球
          </body>
          </html>

          image.gif

          (2)$.extend(object)

                  * 增强JQeury对象自身的功能  $/jQuery

          <!DOCTYPE html>
          <html>
          <head>
              <meta charset="UTF-8">
              <title>01-jQuery对象进行方法扩展</title>
              <script src="js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
              <script type="text/javascript">
                  //对全局方法扩展2个方法,扩展min方法:求2个值的最小值;扩展max方法:求2个值最大值
                  $.extend({
                      max:function (a,b) {
                          //返回两数中的较大值
                          return a >= b ? a:b;
                      },
                      min:function (a,b) {
                          //返回两数中的较小值
                          return a <= b ? a:b;
                      }
                  });
                  //调用全局方法
                  var max = $.max(4,3);
                  //alert(max);
                  var min = $.min(1,2);
                  alert(min);
              </script>
          </head>
          <body>
          </body>
          </html>

          image.gif


          相关文章
          |
          7月前
          |
          存储 JSON JavaScript
          |
          3月前
          |
          JSON JavaScript 前端开发
          javaweb实训第二天上午——jQuery笔记(3)
          JSON格式数据 JSON格式数据概述
          32 0
          |
          3月前
          |
          JSON JavaScript 前端开发
          javaweb实训第二天上午——jQuery笔记(2)
          jQuery操作元素或节点的方法 添加:append(),appendTo(),prepend(),after(),before() 删除:remove(),empty() 复制:clone(true)
          29 5
          |
          3月前
          |
          JavaScript
          |
          6月前
          |
          JavaScript
          JavaWeb JQuery操作结点
          JavaWeb——JQuery内容补充 JQuery操作DOM。
          23 0
          |
          6月前
          |
          JavaScript 前端开发 数据安全/隐私保护
          JavaWeb 速通JQuery
          JavaWeb——JQuery 内容分享。
          32 0
          |
          7月前
          |
          设计模式 JavaScript 前端开发
          【JavaWeb】 JavaScript 开发利器之 jQuery
          封装和抽象:jQuery库封装了一系列常见的DOM操作、事件处理、Ajax请求等功能,以简化开发人员的工作。它对底层的JavaScript操作进行了封装和抽象,提供了更简洁、易用的接口。 选择器引擎:jQuery库通过自定义的选择器引擎,可以使用CSS选择器来选择HTML元素。这使得开发人员能够方便地操作DOM元素,而不需要繁琐地编写原生的JavaScript代码。 链式调用:jQuery库采用链式调用的设计模式,使得可以对选择的元素进行连续的操作。通过返回相同的jQuery对象,可以在同一行代码中依次调用多个方法,提高开发效率和代码可读性。
          |
          10月前
          |
          JavaScript 前端开发 API
          |
          11月前
          |
          JavaScript 前端开发 API
          JavaWeb快速入门--jQuery
          JavaWeb快速入门--jQuery
          52 0
          |
          JavaScript 前端开发 Java
          jquery实现动态表格项目(表格增加删除/全选/表格变色特效等功能)(附源码+javaWEB开发如果需要可以直接使用)
          jquery实现动态表格项目(表格增加删除/全选/表格变色特效) 🍅 Java学习路线:搬砖工的Java学习路线 🍅 作者:程序员小王 🍅 程序员小王的博客:https://www.wolai.com/wnaghengjie/ahNwvAUPG2Hb1Sy7Z8waaF 🍅 扫描主页左侧二维码,加我微信 一起学习、一起进步 🍅 欢迎点赞 👍 收藏 ⭐留言 📝
          266 0
          jquery实现动态表格项目(表格增加删除/全选/表格变色特效等功能)(附源码+javaWEB开发如果需要可以直接使用)