黑马程序员技术交流社区
标题:
Jquery动画
[打印本页]
作者:
黄金体验
时间:
2019-9-19 14:06
标题:
Jquery动画
方法名 说明
hide([speed],[easing],[fun]) 将jquery对象隐藏
可以传入3个参数
speed:动画速度
预定义的值:"slow","normal","fast",也可以指定毫秒数(不加引号)
easing:动画速度的变化方式。(默认为swing)
"swing":慢-快-慢。
"linear":匀速
function:动画结束后,执行该函数
show([speed],[easing],[fun]) 显示隐藏的jquery对象
toggle([speed],[easing],[fun]) 如果该对象被隐藏,则显示该对象
如果该对象被显示,则隐藏该对象
slideUp([speed],[easing],[fun]) 将对象隐藏,有滑动的动画效果
slideDown([speed],[easing],[fun]) 显示被隐藏的对象,有滑动的动画效果
slideToggle([speed],[easing],[fun]) 切换对象的显示状态(显示/隐藏),有滑动的动画效果
fadeOut([speed],[easing],[fun]) 淡出隐藏对象
fadeIn([speed],[easing],[fun]) 淡入显示对象
slideToggle([speed],[easing],[fun]) 淡入/淡出对象
jquery遍历
js中的遍历方式:使用for循环
Jquery中的遍历
方式1: jqObj.each(function(){})
对每个对象调用function中的代码
在function中,可以通过this来获得当前遍历到的js对象
也可以在function的参数列表中定义参数,第一个参数为索引,第二个参数为元素
$cities.each(function (index,element) {
// alert(index + ":" + element.innerHTML);
//元素是js对象,可以转换为jquery对象
alert(index + ":" + $(element).html());
});
实现break:function中return false
//当列表项为‘上海’时,结束遍历
$cities.each(function (i,e) {
if ($(e).html() == "上海") {
return false;
} else {
alert($(e).html());
}
})
实现continue:function中return true
当列表项为‘上海’时,跳过,执行下一趟
/*$cities.each(function () {
if ($(this).html() == "上海") {
return true;
} else {
alert($(this).html());
}
});
方式2:$.each(object, function(I,e){})
使用方法与方式1基本相同
既可以遍历js对象,也可以遍历jquery对象
方式3: for (元素 of 集合)
jquery3.0以上版本可以使用
在idea中使用会报错,但是可以运行
for (city of $cities) {
alert($(city).html());
}
jquery事件绑定与解绑
绑定事件
方式1:
JqObj.event(function(){
事件发生后执行的代码
})
链式编程的方式,绑定多个事件:
JqObj.event1(function1(){
op1…
}).event2(function2(){
op2…
});
代码
$("#name").mouseover(function () {
alert("鼠标来了!");
}).mouseleave(function () {
alert("鼠标走了...");
});
方式2:on绑定,off解绑
on绑定:
jqObj.on("event", function(){
事件发生后的操作
});
off解绑:
jqObj.off("event") 解绑对象上的event事件
jqObj.off() 解绑对象上的所有事件
事件切换
jqObj.toggle(fn1,fn2...)
第一次点击,执行fn1,第二次点击执行fn2,
可以传入任意数量的function
注意:toggle()在jquery1.9版本中被删除
高版本jquery要使用此函数,需要引入jquery-migrate-1.0.0.js
jquery的插件
$.fn.extend():增强jquery对象的功能
在extend中定义的方法,可以被jquery对象所调用
定义方式:
$.fn.extend({
方法名:function(){
…
}, //定义的方法之间用逗号隔开
方法名2:function(){
…
}
});
之后就可以使用jqObj.方法名 来调用在插件中定义的方法了
代码
<!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插件:
1. $.fn.extend()
增强jquery对象的功能
2. $.extend()
增强Jquery对象/$对象的功能
*/
//$.fn.extend()
//定义插件
$.fn.extend({
//自定义插件中的第一个方法
check:function () {
//插件中的this对象是一个jquery对象
//它代表了调用这个插件方法的对象
//将调用了check()方法的复选框对象设置为选中状态
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():扩展全局对象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;
}
});
//定义好后,可以通过$.方法名来调用这些方法了
$(function () {
var max = $.max(1,2);
alert(max);
var min = $.min(3, 4);
alert(min);
})
</script>
</head>
<body>
</body>
</html>
案例
广告的自动显示与隐藏
<!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>
//页面加载完成3秒后,显示广告,显示5秒后,关闭
/*function adShow() {
$("#ad").show("slow");
}
function adHide() {
$("#ad").hide("slow");
}
$(function () {
setTimeout(adShow,3000);
setTimeout(adHide,8000);
});*/
$(function () {
setTimeout(function () {
$("#ad").show("slow");
}, 3000);
setTimeout(function () {
$("#ad").hide("slow")
}, 8000);
})
</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>
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2