jQuery高级
1、动画
三种方式显示与隐藏元素
1.1、默认显示与隐藏方式
show([speed], [easing], [fn]):默认方式进行展示- 参数
speed:动画的速度。- 三个预定义的值【"slow", "normal", "fast"
- 或表示动画时长的毫秒值,比如1000
- 参数
easing:用来指定切换的效果- 取值
swing:动画执行时效果是先慢、中间块、最后再慢。默认 - 取值
linear:动画执行时速度是一成不变的,匀速
- 取值
- 参数
fn:在动画完成时执行的函数,每个元素只执行一次
- 参数
hide([speed], [easing], [fn]):默认方式进行隐藏toggle([speed], [easing], [fn]):默认方式进行切换
1.2、滑动显示与隐藏方式
slideDown([speed], [easing], [fn]):滑动方式进行展示slideUp([speed], [easing], [fn]):滑动方式进行隐藏slideToggle([speed], [easing], [fn]):滑动方式进行切换
1.3、淡入淡出显示与隐藏方式
fadeIn([speed], [easing], [fn]):滑动方式进行展示fadeOut([speed], [easing], [fn]):滑动方式进行隐藏fadeToggle([speed], [easing], [fn]):滑动方式进行切换
2、遍历
2.1、JS的遍历方式
for(初始化值;循环结束条件;步长)
<ul id="city">
<li>北京</li>
<li>上海</li>
<li>天津</li>
<li>重庆</li>
</ul>
var citys = $("#city li");
for(var i = 0; i< citys.length;i++){
alert("i -->>" + i + "<br>li-->>" + citys[i].innerHTML);
} 2.2、jq的遍历方式
jq对象.each(callback)
citys.each(function(index, element){
// 2.1、第一种,this就代表一个li对象。不能获得索引
// alert(this.innerHTML);
if('上海' == $(element).html()){
// 如果Function中返回false,则结束循环【相当于【普通循环中的break】
// 如果Function中返回true,则结束循环【相当于【普通循环中的continue】
return false;
}
// 2.2、第二种方式,可以得到索引。在Function中定义两个参数,index + Element
alert('索引 -->>' + index + 'li对象-->>' + $(element).html()); jQuery.each(Object, [callback])- 和上一种类似,不过是把对象放在了参数Object的位置,这个位置不只能传递jQuery对象,其他数组对象也能放进来
$.each(citys, function(index, element){
alert(element.innerHTML);
}); for..of::jQuery3.0之后引入的新特性,类似于foreach循环
// for(变量名 of 对象名){}
for(li of citys){
alert($(li).html());
} 3、事件绑定
3.1、jQuery标准绑定方式
jq对象.事件方法(回调函数)
3.2、on绑定事件 / off解除绑定
jq对象.on("事件名", "回调函数")jq对象.off("事件名")实例
<body>
<input id="btn" type="button" value="使用on绑定点击事件">
<input id="btn2" type="button" value="使用off解绑点击事件">
<script type="text/javascript">
// 使用on绑定双击事件
// 触发了事件会执行回调函数
$("#btn").on("dblclick", function(){
alert("btn被双击了");
});
// 点击按钮btn2触发事件解绑btn的双击事件
$("#btn2").on("click", function(){
// 解除btn的bdlclick事件注册
// 如果不传递参数则会接触该元素上的所有的事件
$("#btn").off("dblclick");
});
</script>
</body> 3.3、toggle事件切换
jq对象.toggle(fn1. fn2...):切换轮流执行fn函数==1.9版本之后,toggle()方法删除,jQuery Migrate(迁移)可以恢复此功能,sript导入[ jquery-migrate-1.0.0.js ]到js目录中即可==
实例
<body>
<input id="btn" type="button" value="事件切换">
<div id="myDiv" style="width:300px;height:300px;background:pink">
点击按钮变成绿色,再次点击红色
</div>
<script>
// 按钮单击事件绑定,使用toggle
$("#btn").toggle(chGreen, chRed, chBlue);
// 切换为红色的事件
function chGreen() {
// myDiv的属性backgroundColor值改变
$("#myDiv").css("backgroundColor", "green");
}
// 切换为绿色的事件
function chRed() {
$("#myDiv").css("backgroundColor", "red");
}
// 切换为蓝色的事件
function chBlue() {
$("#myDiv").css("backgroundColor", "blue");
}
</script>
</body> 4、案例
4.1、广告的自动弹出与隐藏
4.2、抽奖案例
- 详见
D:\project\project_IDEA\pro_java\Strengthen -foundation\day19-jquery2\04-jQuery综合案例\抽奖.html
5、插件
5.1、作用
- 增强jQuery的功能
5.1、两种实现方式
$.fn.extend(Object)- 增强jQuery获取的对象的功能 比如
$("#id值")获得的对象
- 增强jQuery获取的对象的功能 比如
//1、定义jQuery的对象插件
// 下面两个方法将来是被jQuery对象调用的,也就是两个方法被调用时,会传递进来jQuery对象
$.fn.extend({
// 语法 -->> 方法名:回调函数
// 这里相当于定义了一个函数check(),当调用check时,{}中的代码内容会被执行
check: function () {
// 实现选中所有的复选框
// 把this这个对象的checked属性赋值为true this对象 -->> 调用了check方法的jQuery对象
this.prop("checked", true);
},
uncheck: function () {
// 实现选中所有的复选框
this.prop("checked", false);
}
});
function checkFn(){
// 获得所有的checkbox复选框对象,调用方法check().会传递这个对象到方法中,进而
$("input[type = 'checkbox']").check();
}
function uncheckFn(){ $.extend(Object)- 增强jQuery对象自身($ / jQuery)的功能。全局级别
<body>
<script type="text/javascript">
//对全局方法扩展2个方法,扩展min方法:求2个值的最小值;扩展max方法:求2个值最大值
$.extend({
// 扩展一个max方法
max:function(a ,b){
// 返回两个参数中较大的值
return a > b ? a : b;
},
min:function(a, b){
// 返回两个参数中较小的值
return a < b ? a : b;
}
});
// 全局的方法,所以可以使用$直接调用
var numOfMax = $.max(23, 98);
alert("numOfMax -->>" + numOfMax);
// 用Math调用也可以...
var numOfMin = Math.min(33, 88);
alert('numOfMin -->> ' + numOfMin);
</script>
</body> 
京公网安备 11010502036488号