JQuery 高级+案例

JQuery 高级

       1. JQuery 高级

              1. 动画

              2. 遍历

              3. 事件绑定

              4. 案例

              5. 插件

## JQuery 高级

       1. 动画

              1. 三种方式显示和隐藏元素

                     1. 默认显示和隐藏方式

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

                                   1. 参数:

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

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

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

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

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

      

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

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

<script>

    //隐藏div

    function hideFn() {

       /* $("#showDiv").hide("slow","swing",function () {

            alert("隐藏了...")

        })*/

        //默认方式

        $("#showDiv").hide(5000,"swing")

    }

    //显示div

    function showFn() {

        /*$("#showDiv").show("slow","swing",function () {

            alert("显示了...")

        })*/

        //默认方式

        $("#showDiv").show(5000,"linear")

    }

    //切换显示和隐藏div

    function toggleFn() {

        //默认方式

        $("#showDiv").toggle("slow")

    }

</script>

                     2. 滑动显示和隐藏方式

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

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

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

        //滑动方式  隐藏

$("#showDiv").slideUp("slow");
//滑动方式      显示

$("#showDiv").slideDown("slow")
//滑动方式      切换

$("#showDiv").slideToggle("slow")
 

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

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

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

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

//淡入的方式
$("#showDiv").fadeOut("slow");
//淡出的方式

$("#showDiv").fadeIn("slow");
//淡入淡出切换的方式

$("#showDiv").fadeToggle("slow")

       2. 遍历

              1. js的遍历方式

                     * for(初始化值;循环结束条件;步长)

$(function () {
  //获取所有ul下的li

    var citys=$("#city li");

    //遍历li

    for (var i = 0; i < citys.length; i++) {

        //获取内容

        alert(i+":"+citys[i].innerHTML);

    }

})

              2. jq的遍历方式

                     1. jq对象.each(callback)

                            1. 语法:

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

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

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

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

$(function () {
    var citys=$("#city li");

    citys.each(function (index, element) {

        //3.1获取li对象 第一个方式this    这种方法00不可以获得索引

        alert(this.innerHTML);    //-----js方法

        alert($(this).html());      //-----jq方法

        //3.2获取li的第二种方式  再回调函数中定义参数  index(索引) element(元素对象)

        alert(index+":"+element.innerHTML);   //-----js方法

        alert(index+":"+$(element).html());     //-----jq方法

    })

})

                            2. 回调函数返回值:

Js :如果加判断   break结束循环

                            Continue  结束本次循环 进行下次循环

if ("上海"==citys[i].innerHTML){

    //break;   //结束循环

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

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

if ("上海"==$(element).html()){

    return true;

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

$(function () {
var citys=$("#city li");

    $.each(citys,function () {

        alert(this.innerHTML);

    })

})

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

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

$(function () {
var citys=$("#city li");

   for (li of citys){

       alert($(li).html());

   }

})

             

       3. 事件绑定

              1. jquery标准的绑定方式

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

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

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

$(function () {
//1.获取name对象 ,绑定click事件

   /* $("#name").click(function () {

        alert("我被点击了...")

    })*/

    //name绑定鼠标移到元素之上事件 ,和 鼠标移走事件

    $("#name").mouseover(function () {

        alert("鼠标来了...")

    })

    $("#name").mouseout(function () {

        alert("鼠标走了...")

    })

    //

    alert("我要获得焦点了")

    $("#name").focus();    //让文本输入框获得焦点

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

})

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

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

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

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

$(function () {
//1.使用on给按钮绑定单击事件  click

    $("#btn").on("click",function () {

        alert("我被点击了...")

    });

    //1.使用off接触按钮绑定单击事件  click

    $("#btn2").click(function () {

        $("#btn").off("click");

        $("#btn").off();      //将组件上面的所有事件全部解除

    });

});

              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>

<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> <!--

高版本 是不支持 toggle的   所以导入包  看上

 -->

 <script type="text/javascript">

     $(function () {

         //获取按钮 。调用toggle方法

         $("#btn").toggle(function () {

             //改变div背景色backgroundColor颜色为 green

             $("#myDiv").css("backgroundColor","red");

         },function () {

             //改变div背景色backgroundColor颜色为 pink

             $("#myDiv").css("backgroundColor","pink");

         });

     });

     

       4. 案例

              1. 广告显示和隐藏

                     <!DOCTYPE html>

                     <html>

                     <head>

                         <meta charset="UTF-8">

                         <title>广告的自动显示与隐藏</title>

                         <style>

                             #content{width:100%;height:500px;background:#999}

                         </style>

                    

                         <!--引入jquery-->

                         <script type="text/javascript" src="../js/jquery-3.3.1.min.js"></script>

                         <script>

                             /*

                                 需求:

                                     1. 当页面加载完,3秒后。自动显示广告

                                     2. 广告显示5秒后,自动消失。

                    

                                 分析:

                                     1. 使用定时器来完成。setTimeout (执行一次定时器)

                                     2. 分析发现JQuery的显示和隐藏动画效果其实就是控制display

                                     3. 使用  show/hide方法来完成广告的显示

                              */

                    

                             //入口函数,在页面加载完成之后,定义定时器,调用这两个方法

                             $(function () {

                                //定义定时器,调用adShow方法 3秒后执行一次

                                setTimeout(adShow,3000);

                                //定义定时器,调用adHide方法,8秒后执行一次

                                 setTimeout(adHide,8000);

                             });

                             //显示广告

                             function adShow() {

                                 //获取广告div,调用显示方法

                                 $("#ad").show("slow");

                             }

                             //隐藏广告

                             function adHide() {

                                 //获取广告div,调用隐藏方法

                                 $("#ad").hide("slow");

                             }

​                    

                         </script>

                     </head>

                     <body>

                     <!-- 整体的DIV -->

                     <div>

                         <!-- 广告DIV -->

                         <div id="ad" style="display: none;">

                             <img style="width:100%" src="../img/adv.jpg" />

                         </div>

                    

                         <!-- 下方正文部分 -->

                         <div id="content">

                             正文部分

                         </div>

                     </div>

                     </body>

                     </html>

重要代码:

<!--引入jquery-->
<script type="text/javascript" src="../js/jquery-3.3.1.min.js"></script>

<script>

    /*

    * 需求

    *       1.当页加载完 ,3秒后 自动显示广告

    *       2.广告显示五秒后自动消失

    * 分析

    *   1.使用定时器来完成 setTimeout(执行一次性定时器)

    *   2.发现jQuery的显示和隐藏动画效果其实就是控制display

    *   3.使用 show/hide方法来完成广告的显示

    * */

    //入口函数 在页面加载完成之后,定义定时器,调用这两个方法

    $(function () {

        //定义定时器,定义addShow方法  3秒后执行一次

        setTimeout(addShow,3000);

        //定义定时器,定义addHide方法  8秒后执行一次

        setTimeout(addHide,8000);

    })

    //显示广告

    function addShow() {

        //获取广告div,调用显示方法

        $("#ad").show("slow");

    }

    //隐藏广告

    function addHide() {

        //获取广告div,调用隐藏方法

        $("#ad").hide("slow");

    }

              2. 抽奖

                     <!DOCTYPE html>

                     <html>

                     <head>

                         <meta charset="UTF-8">

                         <title>jquery案例之抽奖</title>

                         <script type="text/javascript" src="../js/jquery-3.3.1.min.js"></script>

                    

                         <script language='javascript' type='text/javascript'>

                    

                             /*

                                 分析:

                                     1. 给开始按钮绑定单击事件

                                         1.1 定义循环定时器

                                         1.2 切换小相框的src属性

                                             * 定义数组,存放图片资源路径

                                             * 生成随机数。数组索引

                                     2. 给结束按钮绑定单击事件

                                         1.1 停止定时器

                                         1.2 给大相框设置src属性

                    

                              */

                             var imgs = ["../img/man00.jpg",

                                         "../img/man01.jpg",

                                         "../img/man02.jpg",

                                         "../img/man03.jpg",

                                         "../img/man04.jpg",

                                         "../img/man05.jpg",

                                         "../img/man06.jpg",

                                         ];

                             var startId;//开始定时器的id

                             var index;//随机角标

                             $(function () {

                                 //处理按钮是否可以使用的效果

                                 $("#startID").prop("disabled",false);

                                 $("#stopID").prop("disabled",true);

                                //1. 给开始按钮绑定单击事件

                                 $("#startID").click(function () {

                                     // 1.1 定义循环定时器 20毫秒执行一次

                                     startId = setInterval(function () {

                                         //处理按钮是否可以使用的效果

                                         $("#startID").prop("disabled",true);

                                         $("#stopID").prop("disabled",false);

                                         //1.2生成随机角标 0-6

                                         index = Math.floor(Math.random() * 7);//0.000--0.999 --> * 7 --> 0.0-----6.9999

                                         //1.3设置小相框的src属性

                                         $("#img1ID").prop("src",imgs[index]);

                    

                                     },20);

                                 });

                                 //2. 给结束按钮绑定单击事件

                                 $("#stopID").click(function () {

                                     //处理按钮是否可以使用的效果

                                     $("#startID").prop("disabled",false);

                                     $("#stopID").prop("disabled",true);

                                    // 1.1 停止定时器

                                     clearInterval(startId);

                                    // 1.2 给大相框设置src属性

                                     $("#img2ID").prop("src",imgs[index]).hide();

                                     //显示1秒之后

                                     $("#img2ID").show(1000);

                                 });

                             });

                         </script>

                    

                     </head>

                     <body>

                    

                     <!-- 小像框 -->

                     <div style="border-style:dotted;width:160px;height:100px">

                         <img id="img1ID" src="../img/man00.jpg" style="width:160px;height:100px"/>

                     </div>

                    

                     <!-- 大像框 -->

                     <div

                             style="border-style:double;width:800px;height:500px;position:absolute;left:500px;top:10px">

                         <img id="img2ID" src="../img/man00.jpg" width="800px" height="500px"/>

                     </div>

                    

                     <!-- 开始按钮 -->

                     <input

                             id="startID"

                             type="button"

                             value="点击开始"

                             style="width:150px;height:150px;font-size:22px">

                    

                     <!-- 停止按钮 -->

                     <input

                             id="stopID"

                             type="button"

                             value="点击停止"

                             style="width:150px;height:150px;font-size:22px">

                     </body>

                     </html>

        <script>
/*

* 分析

*   1给开始按钮你绑定单击事件

*       1.1定义循环定时器

*       2.1切换小相框的src属性

*           *定义数组存放图片资源路径

*           *生成随机数,数组索引

*   2.给结束按钮绑定单击事件

*       2.1停止定时器

*       2.2给大相框设置src属性

*

*

* */

var imgs=["../img/man00.jpg" +

        "../img/man01.jpg" +

        "../img/man02.jpg" +

        "../img/man03.jpg" +

        "../img/man04.jpg" +

        "../img/man05.jpg"+

        "../img/man06.jpg"];

var startId;   //开始定时器Id

var index;   //随机角标

$(function () {

    //处理按钮是否可以使用的效果

    $("#startID").prop("disabled",false);     // disable表示不可用

    $("#stopID").prop("disabled",true);     // disable表示不可用



    //1.给开始按钮绑定单击事件

    $("#startID").click(function () {

        //1.1定义循环定时器 20毫秒执行一次

        startId=setInterval(function () {

            $("#startID").prop("disabled",true);

            $("#stopID").prop("disabled",false);



            //1.2生成随机角标 0-6

            index=Math.floor(Math.random()*7);    //随机数时0.000-0.999  所以*7  在去掉小数点后面的 就是floor

            //1.3设置小相框的src属性

            $("#img1ID").prop("src",imgs[index]);

        },20);

    });

    $("#stopID").click(function () {

        $("#startID").prop("disabled",false);

        $("#stopID").prop("disabled",true);

        //1.停止定时器

        clearInterval(startId);

        //1.2给大框设置属性src属性

        $("#img2ID").prop("src",imgs[index]).hide();      //.hide()表示先隐藏

        //显示1秒之后

        $("#img2ID").show(1000);      //显示1s后显示

    })

})

</script>
<body>



<!-- 小像框 -->

<div style="border-style:dotted;width:160px;height:100px">

    <img id="img1ID" src="../img/man00.jpg" style="width:160px;height:100px"/>

</div>



<!-- 大像框 -->

<div

        style="border-style:double;width:800px;height:500px;position:absolute;left:500px;top:10px">

    <img id="img2ID" src="../img/man00.jpg" width="800px" height="500px"/>

</div>



<!-- 开始按钮 -->

<input

        id="startID"

        type="button"

        value="点击开始"

        style="width:150px;height:150px;font-size:22px"

        onclick="imgStart()">



<!-- 停止按钮 -->

<input

        id="stopID"

        type="button"

        value="点击停止"

        style="width:150px;height:150px;font-size:22px"

        onclick="imgStop()">





<script language='javascript' type='text/javascript'>

    //准备一个一维数组,装用户的像片路径

    var imgs = [

        "../img/man00.jpg",

        "../img/man01.jpg",

        "../img/man02.jpg",

        "../img/man03.jpg",

        "../img/man04.jpg",

        "../img/man05.jpg",

        "../img/man06.jpg"

    ];



</script>

</body>

       5. 插件:增强JQuery的功能

              1. 实现方式:

                     1. $.fn.extend(object)

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

                     2. $.extend(object)

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

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 《jQuery高级编程》是一本面向有一定前端开发基础的读者,深入探讨jQuery框架的高级应用与技巧的书籍。这本书内容广泛且深入,包括了jQuery的核心原理、高级选择器、动画效果、Ajax异步请求、事件处理、插件开发等等。 该书首先详细介绍了jQuery的核心原理和基础知识,深入探讨了jQuery选择器的使用技巧和优化方法。接着,书中介绍了如何使用jQuery创建各种动画效果以及如何优化动画性能。此外,还介绍了jQuery的事件处理机制和常见事件处理方法,以及如何使用事件委托和自定义事件。 更进一步,书中还详细讲解了如何使用jQuery实现Ajax异步请求,包括Ajax的基本使用、处理返回数据、错误处理等。此外,书中还介绍了如何进行跨域请求、使用JSONP等相关技术。 最重要的是,该书还涉及了如何开发jQuery插件,包括插件的基本结构、常见插件开发模式、插件的封装和发布等。还介绍了一些实用的jQuery插件,包括轮播图插件、日期选择插件、表单验证插件等等。 总之,《jQuery高级编程》是一本面向有一定基础并希望深入学习jQuery的读者的高级教程。通过阅读该书,读者能够系统地学习和掌握jQuery高级应用与技巧,提升自己在前端开发中的能力和水平。 ### 回答2: 《jquery高级编程》是一本面向中高级开发者的jQuery编程指南。本书主要包括了jQuery高级特性、设计模式、插件开发等内容,适合读者已经具备一定jQuery基础并想要深入学习和掌握该库。 首先,本书从jQuery的基础开始介绍,包括选择器、操作DOM元素、事件处理等内容。然后,逐步深入讲解了jQuery高级特性,如元素动画、效果与动画、Ajax和延迟对象等。通过阅读本书,读者能够对jQuery的核心功能有更深入的理解,并能够运用到实际项目中。 同时,本书还介绍了一些常用的设计模式和最佳实践,帮助读者写出更加优雅、高效的代码。书中也提供了大量的示例和案例,让读者可以更好地理解和应用所学知识。 此外,本书还涵盖了插件开发和扩展jQuery的内容。通过学习如何编写自己的插件,读者能够将jQuery的功能扩展到更广泛的应用场景中,提高开发效率和代码质量。 总而言之,《jquery高级编程》是一本系统全面的jQuery开发指南,适合有一定基础的开发者进一步深入学习并提升技术水平。无论是理论还是实践,本书都能给读者提供宝贵的指导和帮助。 ### 回答3: 《jQuery高级编程》是一本专门介绍jQuery技术的书籍。作为一本高级编程指南,这本书不仅向读者介绍了jQuery的基础知识和常见用法,还深入探讨了更高级的概念和技术。本书的作者具有丰富的经验和深入的理解,为读者提供了极为实用和有洞察力的内容。 在《jQuery高级编程》中,读者将学习到如何使用jQuery来创建交互性强、动态性强的网页。书中提供了大量的代码示例和练习,帮助读者理解和掌握jQuery的各种功能和方法。同时,该书还介绍了jQuery的一些高级特性,如插件开发、事件委托、动画效果和Ajax技术等。 除了介绍和讲解基础知识外,本书还讨论了一些最佳实践和性能优化的方法。通过学习这些技巧,读者可以更好地使用jQuery和其他相关技术,提高网页的加载速度和用户体验。 总的来说,如果你已经熟悉基础的jQuery知识,想要进一步提升自己的技能并深入理解jQuery的原理和应用,那么《jQuery高级编程》是一本非常值得推荐的书籍。无论是前端开发人员还是对网页交互性感兴趣的读者,都能从中获得丰富的知识和实用的技巧。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值