1. JQuery 高级
1. 动画
2. 遍历
3. 事件绑定
4. 案例
5. 插件
## JQuery 高级
动画
1. 三种方式显示和隐藏元素
1. 默认显示和隐藏方式
1. show([speed,[easing],[fn]])
1. 参数:
1. speed:动画的速度。三个预定义的值("slow","normal", "fast")或表示动画时长的毫秒数值(如:1000)
2. easing:用来指定切换效果,默认是"swing",可用参数"linear"
* swing:动画执行时效果是 先慢,中间快,最后又慢
* linear:动画执行时速度是匀速的
3. fn:在动画完成时执行的函数,每个元素执行一次。
2. hide([speed,[easing],[fn]])
3. toggle([speed],[easing],[fn])
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="../js/jquery-3.3.1.min.js"></script>
<script>
//隐藏按钮
function hideFn() {
$("#showDiv").hide("slow","swing");
}
//显示按钮
function showFn() {
$("#showDiv").show("slow","swing");
}
//切换隐藏和显示按钮
function toggleFn() {
$("#showDiv").toggle("slow");
}
</script>
</head>
<body>
<input type="button" value="点击按钮隐藏div" οnclick="hideFn()">
<input type="button" value="点击按钮显示div" οnclick="showFn()">
<input type="button" value="点击按钮切换div显示和隐藏" οnclick="toggleFn()">
<div id="showDiv" style="width:300px;height:300px;background:pink">
div显示和隐藏
</div>
</body>
</html>
2. 滑动显示和隐藏方式
1. slideDown([speed],[easing],[fn])
2. slideUp([speed,[easing],[fn]])
3. slideToggle([speed],[easing],[fn])
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript" src="../js/jquery-3.3.1.min.js"></script>
<script>
//滑动方式隐藏按钮
function hideFn() {
$("#showDiv").slideDown("slow","swing");
}
//滑动方式显示按钮
function showFn() {
$("#showDiv").slideUp("slow","swing");
}
//滑动方式切换隐藏和显示按钮
function toggleFn() {
$("#showDiv").slideToggle("slow");
}
</script>
</head>
<body>
<input type="button" value="点击按钮隐藏div" οnclick="hideFn()">
<input type="button" value="点击按钮显示div" οnclick="showFn()">
<input type="button" value="点击按钮切换div显示和隐藏" οnclick="toggleFn()">
<div id="showDiv" style="width:300px;height:300px;background:pink">
div显示和隐藏
</div>
</body>
</html>
3. 淡入淡出显示和隐藏方式
1. fadeIn([speed],[easing],[fn])
2. fadeOut([speed],[easing],[fn])
3. fadeToggle([speed,[easing],[fn]])
遍历
1. js的遍历方式
* for(初始化值;循环结束条件;步长)
2. jq的遍历方式
1. jq对象.each(callback)
1. 语法:
jquery对象.each(function(index,element){});
* index:就是元素在集合中的索引
* element:就是集合中的每一个元素对象
* this:集合中的每一个元素对象
2. 回调函数返回值:
* true:如果当前function返回为false,则结束循环(break)。
* false:如果当前function返回为true,则结束本次循环,继续下次循环(continue)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="../js/jquery-3.3.1.min.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
/*
js方式遍历:
$(function () {
//获取所有ul下的li
let citys = $("#city li");
//遍历li
for (var i = 0; i < citys.length; i++) {
alert((i+1)+":"+citys[i].innerHTML);
}
})
*/
// jq的遍历方式
$(function () {
//获取所有ul下的li
var citys = $("#city li");
//jq对象.each(callback)
citys.each(function (index,element) {
if ("上海" == $(element).html()){
//结束本次循环,继续下次循环 --> continue
//打印上海之外的城市
return true;
}
//强制将element转化为jq对象
alert(index + ":"+ $(element).html());
})
})
</script>
</head>
<body>
<ul id="city">
<li>北京</li>
<li>上海</li>
<li>天津</li>
<li>重庆</li>
</ul>
</body>
</html>
2. $.each(object, [callback])
3. for..of: jquery 3.0 版本之后提供的方式
for(元素对象 of 容器对象)