[TOC]
15_JQuery高级
- 动画
- 遍历
- 事件绑定
- 案例
- 插件
1.动画
三种方式显示和隐藏元素(就是将display元素添加和删除)
默认显示和隐藏方式
show([speed],[easing],[fn])
参数:
- speed:动画的速度。三个预定义的值(”slow”,”normal”,”fast”)或表示动画时长的毫秒值(如:1000)
easing:用来指定切换效果,默认是”swing”,可用参数”linear”
- swing:动画执行时的效果是先慢后快最后又慢
- linear:动画执行时速度是匀速的
- fn:在动画完成时的一个函数,每个元素执行一次
hide([speed],[easing],[fn])
toggle([speed],[easing],[fn])
滑动显示和隐藏方式
slideDown([speed],[easing],[fn])
sideUp([speed],[easing],[fn])
slideToggle([speed],[easing],[fn])
淡入淡出显示和隐藏方式
fadeIn([speed],[easing],[fn])
fadeOut([speed],[easing],[fn])
fadeToggle([speed],[easing],[fn])
```html <!DOCTYPE html>
div显示和隐藏
<a name="bc704e99"></a>
## 2.遍历
1.
js遍历方式
- `for(初始化值;循环结束条件;步长)`
2.
jq遍历方式
1. `jq对象.each(callback)`
2. `$.each(object,[callback])`
3. `for..of:`
html
<!DOCTYPE html>
- 北京
- 上海
- 天津
- 重庆
<a name="e7bf0b6d"></a>
## 3.事件绑定
1.
jquery标准的绑定方式
- `jq对象.事件方法(回调函数);`
html
<!DOCTYPE html>
- `$("#name").focus();//让文本输入框获得焦点`
- `表单对象.submit 让表单提交`
2.
on绑定事件/off解除绑定
- `jq对象.on("事件名称","回调函数")`
- `jq对象.off("事件名称")`
html
<!DOCTYPE html>
- 如果off没有参数,解除对象所有的绑定事件
3.
事件切换:toggle
- `jq对象.toggle(fn1,fn2,...)`
- 当单击jq对象对应的组合后,会执行fn1,第二次点击后会执行fn2....如果到尾了,会又执行fn1开始轮回
- 注意:jq1.9以后,toggle事件切换方法删除,如果想用加入插件jQuery Migrate
html
<!DOCTYPE html>
点击按钮变成绿色,再次点击红色
<a name="38cf6ad4"></a>
## 4.案例
1.
广告的显示和隐藏
html
<!DOCTYPE html>
<!-- 下方正文部分 -->
<div id="content">
正文部分
</div>
2.
抽奖
```html
<!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'>
/*
* 1.给开始按钮绑定单击事件
* 1.1 定义循环定时器
* 1.2 切换小相框src属性
* 定义一个数组,存放图片的路径
* 生成随机数,数组索引
*
*
* 2.给停止按钮绑定单击事件
* 2.1 停止定时器
* 2.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;//开始定时器id
$(function () {
//处理按钮是否可以使用的样式
$("#startID").prop("disabled",false);
$("#stopID").prop("disabled",true);
//1.给开始按钮绑定事件
$("#startID").click(function () {
//1.1定义循环定时器,20ms执行一次
startID = setInterval(function () {
$("#startID").prop("disabled",true);
$("#stopID").prop("disabled",false);
//1.2生成随机角标 0-6
var index = Math.floor(Math.random()*7);//0.000-0.999 -> *7 -> 0.0-6.9999
//1.3设置小相框属性
$("#img1ID").prop("src",imgs[index]);
},20);
});
//2.给结束按钮绑定事件
$("#stopID").click(function () {
//1.停止定时器
clearInterval(startID);
//2.给大相框设置src
$("#img2ID").prop("src",$("#img1ID").prop("src"));
$("#startID").prop("disabled",false);
$("#stopID").prop("disabled",true);
})
})
</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的功能
实现方式:
$.fn.extend(object)
增强通过Jquery获取的对象的功能
$("#id")
```html <!DOCTYPE html>