前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JQuery高级应用

JQuery高级应用

作者头像
乐心湖
发布2021-01-18 14:50:48
5.9K0
发布2021-01-18 14:50:48
举报
文章被收录于专栏:MyTechnology

动画

三种方式显示和隐藏元素

默认显示和隐藏方式

show([speed,easing,fn]) :显示

参数:

  • speed:动画的速度。三个预定义的值("slow","normal", "fast")或表示动画时长的毫秒数值(如:1000)
  • easing:用来指定切换效果,默认是"swing",可用参数"linear"
代码语言:txt
复制
- swing:动画执行时效果是 先慢,中间快,最后又慢
- linear:动画执行时速度是匀速的fn:在动画完成时执行的函数,每个元素执行一次。

hide([speed,easing,fn]) :隐藏

toggle(speed,easing,fn) :切换,显示则隐藏,隐藏则显示

代码语言:javascript
复制
<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>
代码语言:javascript
复制
$("#showDiv").show("slow","swing",function(){
    alert("显示了...")
});

$("#showDiv").hide("slow","swing",function(){
    alert("隐藏了...")
});

//自动切换
$("#showDiv").toggle("slow");

滑动显示和隐藏方式

slideDown(speed,easing,fn)

slideUp([speed,easing,fn])

slideToggle(speed,easing,fn)

代码语言:javascript
复制
//滑动方式
$("#showDiv").slideDown("slow");
//滑动方式
$("#showDiv").slideToggle("slow");
//滑动方式
$("#showDiv").slideUp("slow");

淡入淡出显示和隐藏方式

fadeIn(speed,easing,fn)

fadeOut(speed,easing,fn)

fadeToggle([speed,easing,fn])

代码语言:javascript
复制
//淡入淡出方式
$("#showDiv").fadeIn("slow");
//淡入淡出方式
$("#showDiv").fadeOut("slow");
//淡入淡出方式
$("#showDiv").fadeToggle("slow");

遍历

js的遍历方式

for(初始化值;循环结束条件;步长),jq也可以用。

jq的遍历方式

jq对象.each(callback)

语法:

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

  • index:就是元素在集合中的索引
  • element:就是集合中的每一个元素对象
  • this:集合中的每一个元素对象

回调函数返回值:

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

$.each(object, callback),object为需要遍历的jq对象,回调方法中的参数与each一模一样。

for..of:jquery 3.0 版本之后提供的方式。for(元素对象 of 容器对象)

代码语言:javascript
复制
<ul id="city">
    <li>北京</li>
    <li>上海</li>
    <li>天津</li>
    <li>重庆</li>
</ul>
代码语言:javascript
复制
var citys = $("#city li");
citys.each(function (index, element) {
    alert(index + ": " + $(element).html())
})
//或者
citys.each(function (){
    alert($(this).html())
})

citys.each(function (index, element) {
    if ("上海"=== $(element).html() ){
        return false; //结束循环
    }
    alert(index + ": " + $(element).html())
})
citys.each(function (index, element) {
    if ("上海"=== $(element).html() ){
        return true; //跳过本次循环
    }
    alert(index + ": " + $(element).html())
})
代码语言:javascript
复制
var citys = $("#city li");
$.each(citys,function (index,city) {
    alert(index + ": " + $(city).html())
})

事件绑定

jquery标准的绑定方式

  • jq对象.事件方法(回调函数);
  • 注:如果调用事件方法,不传递回调函数,则会触发浏览器默认行为。
  • 表单对象.submit(); //让表单提交
代码语言:javascript
复制
<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("鼠标走了...")
            });

            //简化操作,链式编程
            $("#name").mouseover(function () {
                alert("鼠标来了...")
            }).mouseout(function () {
                alert("鼠标走了...")
            });

            alert("我要获得焦点了...")
            $("#name").focus(); //让文本输入框获得焦点
            表单对象.submit(); //让表单提交
        });
    </script>
</head>
<body>
    <input id="name" type="text" value="绑定点击事件">
</body>
</html>

on绑定事件/off解除绑定

  • jq对象.on("事件名称",回调函数)
  • jq对象.off("事件名称")
  • 如果off方法不传递任何参数,则将组件上的所有事件全部解绑
代码语言:javascript
复制
<!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 () {
                //使用on给按钮绑定单击事件  click
                $("#btn").on("click",function () {
                    alert("我被点击了。。。")
                }) ;
                
                //使用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>

事件切换:toggle

  • jq对象.toggle(fn1,fn2...)
  • 当单击jq对象对应的组件后,会执行fn1.第二次点击会执行fn2.....
  • 注意:1.9版本 .toggle() 方法删除,jQuery Migrate(迁移)插件可以恢复此功能。

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

代码语言:javascript
复制
<!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>

案例

广告自动显示和隐藏

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>广告自动显示和隐藏</title>
        <script src="../js/jquery-3.3.1.min.js"></script>
        <style>
            #content {
                width: 100%;
                height: 500px;
                background: #999
            }
        </style>
        <script>
            $(function () {
                //1.5秒显示广告
                setTimeout(fade, 1500)
                //3.5秒后关闭广告
                setTimeout(fade, 5000)
            })

            function fade() {
                $("#ad").fadeToggle("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的功能

如何定义插件:(看下面两个案例)

$.fn.extend(object)

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

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="./js/jquery-3.3.1.min.js"></script>
        <script>
            //定义对象插件
            $.fn.extend({
                check: function () {
                    this.prop("checked", true);
                },
                uncheck: function () {
                    this.prop("checked", false);
                }
            });
            //使用对象插件
            $(function () {
                $("#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>

$.extend(object)

增强JQeury对象自身的功能 $ 或者 jQuery

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>全局插件</title>
        <script src="./js/jquery-3.3.1.min.js"></script>
        <script>
            // 对全局方法扩展2个方法,扩展min方法:求2个值的最小值;扩展max方法:求2个值最大值
            $.extend({
                max: function (a, b) {
                    return a >= b ? a : b;
                },
                min: function (a, b) {
                    return a <= b ? a : b;
                }
            })

            // 使用这两个方法
            alert($.max(10, 8));
            alert($.min(5, 8));
        </script>
    </head>
    <body>

    </body>
</html>

版权属于:乐心湖's Blog

本文链接:https://cloud.tencent.com/developer/article/1774922

声明:博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 动画
    • 默认显示和隐藏方式
      • 滑动显示和隐藏方式
        • 淡入淡出显示和隐藏方式
        • 遍历
          • js的遍历方式
            • jq的遍历方式
            • 事件绑定
              • jquery标准的绑定方式
                • on绑定事件/off解除绑定
                  • 事件切换:toggle
                  • 案例
                    • 广告自动显示和隐藏
                    • 插件
                    相关产品与服务
                    容器服务
                    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档