基础
前言
jQuery 是 js 的一个库,封装了我们开发过程中常用的一些功能,方便我们调用,提高开发效率。
Jquery==$
JQuery初体验
html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<link rel="stylesheet" href="../css/style.css">
</head>
<body>
<span></span>
<nav>
<a href="#">地区1</a>
<a href="#">地区2</a>
<a href="#">地区3</a>
<a href="#">地区4</a>
<a href="#">地区5</a>
<a href="#">地区6</a>
<a href="#">地区7</a>
</nav>
<div class="show">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
</div>
<script src="../js/jquery-3.5.1.min.js"></script>
<script src="../js/script.js"></script>
</body>
</html>
css
*{padding:0;margin:0;border: none;}
body{
height: 100%;
background-color: #93b3c6;
overflow: hidden;
}
span{
display:block;
width: 16px;
height: 16px;
background-color: white;
border-radius: 50%;
margin:15px auto 20px;
}
nav{
position: relative;
display:flex;
display: -webkit-flex;
flex-direction: row;
flex-wrap: wrap;
margin: 0 auto;
justify-content: center;
z-index: 999999;
}
nav::before{
position: absolute;
top: 50px;
width: 80%;
height: 10px;
display: block;
background: #ffffff;
content: '';
}
nav>a{
position: relative;
display: block;
list-style: none;
text-decoration: none;
color:black;
margin: 20px 5px;
max-width: 10%;
min-width: 5%;
padding: 15px 25px 10px 25px;
height: 40px;
text-align: center;
background-color: white;
border: 2px solid #5395b4;
padding:10px;
}
nav::after{
margin-right: auto;
}
.show{
position: relative;
width: 78.125vw;
height: 75vh;
margin: 5px auto;
background-color: #fff;
overflow: hidden;
box-shadow: 0 0 30px 0 rgba(8, 1, 3,.3);
padding: 10px;
}
.show>div{
font-size: 100px;
text-align: center;
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
width: 98%;
height: 98%;
margin: auto;
background-color: #93b3c6;
}
js
$(document).ready(function () {
$('a').click(function () {
$('.show>div')
.eq($(this).index()).css({
'opacity': '1'
}) //设置当前节点元素的透明度
.siblings().css({
'opacity': '0'
}); //修改兄弟节点的透明度
console.log($(this).index());
})
var alinks = $('a');
for(var i = alinks.length - 1; i>=0; i--){
// alinks[i].style.background = 'red';
console.log(alinks);
alinks.eq(i).css({//这里不可以是alinks[i]
'background': 'red',//插入css
})
// .text('index'+i)//插入text
// .html('<strong>地区'+i+"</stong>")//插入html标签
}
});
基础选择性器
id , class , 标签,
//类似css的选择器
$("*") 全,
$("p") 标签
$("#test") id,
$(".style01") 类,
$("p,h2")多选,
$("[属性]"),
$("[attribute]")
$("[attribute=value]")
$("[attribute!=value]")
$("[attribute^=value]")//选择包含属性开头
$("[attribute$=value]")//选择包含这个属性结尾
$("[attribute*=value]")//包含这个属性
$(":input")表单选择器,
$("parent->child")层次选择器,
$("ancestor descendant")后代选择器,
$("prev+next")后相邻选择器(就是选择prev后一个元素),
$("prev~siblings")后兄弟选择器(prev后所有符合条件的元素)
CSS选择器
S(selector).css(propertyName, value)[修改当前元素的css属性]
过滤器
用法
$("selector:first")
父元素过滤器
:first第一个
:last最后一个
:even偶数
:odd奇数
:eq(index)选择指定序号
:gt(index)选择大于指定序号的元素
:lt(index)选择小于指定序号的元素
:not(selector)除了selector都要选择$(":not(selector)")
:header选择标题元素(就是h标签)$(":header")
子元素过滤器
:first-child
:last-child
:nth-child():选择第n个子元素
:nth-last-child():选择倒数第n个子元素
:only-child选择唯一的子元素
内容过滤器
:contains(str):选择内容含有str的元素
:empty:选择元素内容为空的
:parent:选择拥有子节点的
:has():选择包含指定选择器
可见性过滤器
:hidden不可见元素
:visible可见元素
事件
常用事件
$(selector).action(function(){.......});
常见文档/窗口事件
ready()就绪
load()加载
unload()卸载(跳到其他页面)
键盘事件
keydown()按下
keypress()按下并快速释放
keyup()释放
鼠标事件
click()
dbclick()
hover()
mousedown()
mouseenter()鼠标刚进入被选中元素
mouseleave()鼠标刚离开被选中元素
mousemove()鼠标移动事件
mouseout()离开(离开子元素也会触发)
mouseover()穿过
mouseup()鼠标按键被释放事件
toggle()一次绑定多个函数,指定元素被点击依次执行其中一个函数
$(selector).toggle(function(){},function(){},function(){}....);
JQuery事件绑定 解除
事件绑定
bind()可以给指定元素绑定一个或多个事件
//绑定一个事件
$(selector).bind(event(事件名称),[data,] function(){})
//可以绑定多个事件
$(selector).bind(event1(事件名称) event2(事件名称) event3(事件名称),[data,] function(){})
//可以绑定多个事件和方法
$(selector).bind({
event1(事件名称),[data,] function(){},
event2(事件名称),[data,] function(){},
event3(事件名称),[data,] function(){}}
)
delegate():给指定元素的子元素绑定一个或多个事件
$(selector).delegate(childSelector, event, [data,] function)
==on():给指定元素或子元素绑定一个或多个事件(包含前两个的用法)==
$(selector).on(event,[childSelector,] [data,] function)
事件解除
//unbind()
$(selector).unbind([event] [,function])
//undelegate
$(selector).undelegate([childSelector] [,event] [,function])
//off()
$(selector).off(event, [childSelector,] [data,] function)
jQuery特效
隐藏和显示
hide()
show()
toggle()用来切换hide和show
淡入和淡出
【duration可以选择slow,fast】
fadeIn():淡入
fadeOut():淡出直到隐藏
fadeToggle():切换淡入和淡出
fadeTo():用于将元素变成指定通明度
$(selector).fadeTo(duration(持续时间), opacity(通明度) [, callback])
滑动
slideDown():向下滑动
slideUp():向上滑动
slideToggle():切换向上向下滑动
动画
animate({params} [,duration], [,callback])
params是形成动画的css属性(可以设置多个)
duration:表示规定的效果时长
callback:动画结束后执行的函数
方法链接
$(selector).action1(),action2().action3()...;
停止动画
$(selector).stop([stopAll] [, gotoEnd]);//这两个都是布尔值
jQuery HTML DOM
jQuery获取和设置
获取和设置常用的方法
text():文本内容
html():包括html标签本身
val():表单字段的值
attr():指定元素的属性值
css():指定元素的css值
jQuery添加
append():在指定元素内部的结尾插入内容
prepend():在只当以元素的内部的开头插入内容
after():在指定元素之后添加内容
before():在指定元素之前添加内容
删除remove();
$("p").remove(".style01");//删除class="style01"所有的p标签
清空empty();
清空removeAttr();
删除元素的指定属性
类属性
addClass()//添加class
removeClass()
toggleClass()
尺寸
width:
height
innerWidth包括内边距
innerHeight
outerWidth包括内边距和边框
outerHeight
jQuery遍历
后代遍历
$(selector).children([selector2] [".style1"])
$(selector).find(selector2)//查找后代全部元素
$(selector).filter(selector2)//过滤器,只会选择符合selector2的元素
同胞遍历(具有相同的父元素)
siblings:所有兄弟节点
next:指定的下一个
nextAll:指定元素后全部
nextUntil(selector,selector):指定元素后的指定范围
prev:指定的前一个
prevAll:指定前全部
prevUntil(selector,selector):指定元素前的指定范围
祖先遍历(父,祖父,曾祖父等)
parent():指定元素的直接父元素
parents():指定元素的全部祖先元素
parentsUntil():指定元素向上指定范围的所有祖先元素
AJAX技术
load()方法
$(selector).load(URL [, data] [, callback])
URL规定获取数据的URL地址,可以是文本,XML,JSON
data:用于规定与请求一起发送给服务器的字符串(该字符串以键/值对合集)
callback:load()完成后执行的函数
$("#demo").load("test.txt")
$("#demo").load("test.txt div.style01")
$(selector).load(URL [, data] ,function(response, status,xhr){
//回调函数代码
//response:调用成功时的结果内容
//status:调用状态,eg:success 和 error
//xhr:表示XMLHttpRequest对象
})
get()方法
$.get(URL [, data] [, success] [, dataType]);
dataType规定从服务器端获取的数据类型,eg:XML,JSON,HTML等
post()方法
$.post(URL [, data] [, success] [, dataType]);
ajax()方法
$.ajax({
url: "demo.php",
method:"POST",
data:{username:"admin", password:"123"},
dataType: "json",
success:function(){alert("请求成功");},
error: function(){alert("请求失败");}
});