jquery
jquery高级
1.动画
1.三种方式显示和隐藏元素
1.默认显示和隐藏方式
1.show([speed,[easing],[fn]])
1.参数:
1.speed:动画的速度,三种预定速度之一的字符串("slow", "normal", or "fast")或表示动画时长的毫秒数值(如:1000)
2.easing:(Optional) 用来指定切换效果,默认是"swing",可用参数"linear"
*swing:动画执行时的效果是先慢,中间快,最后又慢
*linear:动画执行的速度是匀速的
3.fn:在动画完成时执行的函数,每个元素执行一次。
2.hide([speed,[easing],[fn]])
3.toggle([speed],[easing],[fn])
2.滑动显示和隐藏方式
1.slideDown([speed],[easing],[fn])//显示
2.slideUp([speed,[easing],[fn]])//隐藏
3.slideToggle([speed],[easing],[fn])
3.淡入淡出显示和隐藏
1.fadeIn([speed],[easing],[fn])
2.fadeOut([speed],[easing],[fn])
3.fadeToggle([speed],[easing],[fn])
2.遍历
1.JS的遍历方式
*for(初始化值,循环结束条件,步长)
2.JQ的遍历方式
1.jq对象.each(callback)
*callback:回调函数
2.$.each(Object,[callback])//全局遍历方式
3.for...of;//jquery3.0版本之后提供的方法
//相当于java的增强for循环
for(li of citys){
alert($(li).html());
}
3.事件绑定
1.jquery标准的绑定方式
jq对象.事件方法(回调函数)
2.on绑定事件、off解除绑定
jq对象.on("事件名称",回调函数)
jq对象.off("事件名称")//如果不传递参数,将会解绑组件上的所有事件
3.时间切换:toggle
*jq对象.toggle(fn1,fn2...)
*当单击jq对象对应的组件后,会执行fn1,再次点击时执行fn2
*注意:1.9版本 .toggle() 方法删除,jQuery Migrate(迁移)插件可以恢复此功能
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.广告显示五秒后,自动消失
*分析:
1.使用定时器来完成,setTimeout(执行一次)
2.分析发现,jquery的动画效果就是控制display属性
3.使用show/hide方法来完成广告的显示
*/
$(function(){
//定义一个定时器
setTimeout(adShow,3000);
setTimeout(adHide,8000);
});
//显示广告的方法
function adShow(){
$("#ad").show("slow");
}
//隐藏广告的方法
function adHide(){
$("#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>
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'>
$(function(){
//准备一个一维数组,装用户的像片路径
var imgs = [
"../img/man00.jpg",
"../img/man01.jpg",
"../img/man02.jpg",
"../img/man03.jpg",
"../img/man04.jpg",
"../img/man05.jpg",
"../img/man06.jpg"
];
var starId;
var index;
$("#startID").prop("disabled",false);
$("#stopID").prop("disabled",true);
//1.给开始按钮绑定单击事件
$("#startID").click(function(){
$("#startID").prop("disabled",true);
$("#stopID").prop("disabled",false);
starId = setInterval(function(){
index = Math.floor(Math.random()*7);
$("#img1ID").prop("src",imgs[index]);
},50);
});
//2.给结束按钮绑定单击事件
$("#stopID").click(function(){
$("#startID").prop("disabled",false);
$("#stopID").prop("disabled",true);
//停止定时器
clearInterval(starId);
$("#img2ID").prop("src",imgs[index]).hide();
$("#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>
5.插件:增强jquery的功能
1.实现方式
1.$.fn.extend(object)
*增强通过jquery获取的对象的功能 对象级别的插件,通过jq获取的对象可以调用
2.$.extend(object)
*增强jquery对象本身的功能 全局级别的插件