JQuery案例和插件机制
案例-广告显示和隐藏
需求:
1.当页面加载完,3秒后,自动显示广告
2.广告显示5秒后,自动消失
分析:
1.使用定时器完成,setTimeout(执行一次定时器)
2.分析发现JQuery的显示和隐藏动漫效果其实就是控制display
3.使用 show/hide方法来完成广告的显示
<!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 () { //定义定时器,调用addShow方法 3秒后执行一次 setTimeout(addShow,3000); //定义定时器,调用adHide方法,8秒后执行一次 setTimeout(adHide,8000); }) //显示广告 function addShow() { //获取广告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>
案例-抽奖
分析:
1、给开始按钮绑定单击事件
1.1、定义循环定时器
1.2切换小相框的src属性
定义数组,存放图片资源路径
生成随机数。数组索引
2、给结束按钮绑定单击事件
1.1、停止定时器
1.2、给大相框设置src属性
<!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> /* 分析: 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;// 开始定时器 全局变量 var index;//随机角标 $(function () { //处理按钮是否可以使用的效果 $("startID").prop("disabled",false)// 可用 $("stopID").prop("disabled",false)// 不可用 //1.给开始按钮绑定单击事件 $("#startID").click(function () { //1.1定义循环定时器,20毫秒执行一次 startId = setInterval(function () { //1.2生成随机角标 0-6 index = Math.floor(Math.random() * 7);// 0.000--0.999 --- > * 7 --- > 0.0 ----- 6.999 //1.3设置小相框的src属性 $("#img1ID").prop("src",imgs[index]).hide(); //显示1秒 $("#img2ID").show(1000); },20); }); //2.给结束按钮绑定单击事件 $("#stopID").click(function () { //1.1定制定时器 clearInterval(startId); //1.2给大相框设置src属性 $("#img2ID").prop("src",imgs[index]); }); }); </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" onclick="imgStart()"> <!-- 停止按钮 --> <input id="stopID" type="button" value="点击停止" style="width:150px;height:150px;font-size:22px" onclick="imgStop()"> </body> </html>
插件机制
插件:增强JQuery的功能
实现方式:
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对象添加两个方法 check()选中所有复选框,uncheck()取消选中所有复选框 //1、定义jquery的对象插件 $.fn.extend({ //定义一个check方法,所有的jq对象都可以调用该方法 check:function () { //让复选框选中 //this:调用该方法的jq对象 this.prop("checked",true); }, uncheck:function () { //让复选框不选中 this.prop("checked",false); } }); $(function () { //获取按钮 //复选框对象,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>
2、$.extend(object)
增强JQuery对象自身的功能 $/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(1,5); alert(max); var min = $.min(2,1); alert(min); </script> </head> <body> </body> </html>