javasciprt库
封装了很多js函数的文件夹
常见的javascript库:
jQuery
Prototype
YUI
Dojo
Ext JS
移动端的zepto
jQuery概念:
javascript query查询
把js中的DOM操作做了封装,我们可以快速查询使用里面的功能
jQuery的基本使用:
jQuery的入口函数:
$(function(){
…//此处是DOM加载完成的入口
});
(
d
o
c
u
m
e
n
t
)
.
r
e
a
d
y
(
f
u
n
c
t
i
o
n
(
)
.
.
.
/
/
此
处
是
页
面
D
O
M
加
载
完
成
的
入
口
)
相
当
于
D
O
M
C
o
n
t
e
n
t
L
o
a
d
e
d
不
必
等
j
s
文
件
、
c
s
s
文
件
、
图
片
加
载
完
毕
j
Q
u
e
r
y
的
顶
级
对
象
(document).ready(function(){ ...//此处是页面DOM加载完成的入口 }) 相当于DOMContentLoaded 不必等js文件、css文件、图片加载完毕 jQuery的顶级对象
(document).ready(function()...//此处是页面DOM加载完成的入口)相当于DOMContentLoaded不必等js文件、css文件、图片加载完毕jQuery的顶级对象(jQuery的另外的名字)
(
′
d
i
v
′
)
.
h
i
d
e
(
)
j
Q
u
e
r
y
(
′
d
i
v
′
)
.
h
i
d
e
(
)
j
Q
u
e
r
y
对
象
和
D
O
M
对
象
:
1.
D
O
M
对
象
:
用
原
生
j
s
获
取
过
来
的
对
象
就
是
D
O
M
对
象
2.
j
Q
u
e
r
y
对
象
:
用
j
Q
u
e
r
y
方
式
获
取
过
来
的
对
象
就
是
j
Q
u
e
r
y
对
象
。
本
质
:
通
过
('div').hide() jQuery('div').hide() jQuery对象和DOM对象: 1.DOM对象:用原生js获取过来的对象就是DOM对象 2.jQuery对象:用jQuery方式获取过来的对象就是jQuery对象。本质:通过
(′div′).hide()jQuery(′div′).hide()jQuery对象和DOM对象:1.DOM对象:用原生js获取过来的对象就是DOM对象2.jQuery对象:用jQuery方式获取过来的对象就是jQuery对象。本质:通过把DOM元素进行了包装
3.jQuery对象只能使用jQuery方法,DOM对象则使用原生的javascript属性和方法,不能混用
$(‘div’);
$(‘div’).style.display=‘none’;(x)jQuery对象只能使用jQuery方法,不能使用原生的属性和方法
jQuery对象和DOM对象之间是可以相互转换的:
1.把DOM对象转换成jQuery对象:
静音的意思
1)直接获取视频得到的就是jQuery对象
(
′
v
i
d
e
o
′
)
;
2
)
我
们
已
经
使
用
原
生
的
j
s
,
获
取
过
来
j
Q
u
e
r
y
对
象
v
a
r
m
y
v
i
d
e
o
=
d
o
c
u
m
e
n
t
.
q
u
e
r
y
S
e
l
e
c
t
o
r
(
′
v
i
d
e
o
′
)
;
/
/
('video'); 2)我们已经使用原生的js,获取过来jQuery对象 var myvideo=document.querySelector('video'); //
(′video′);2)我们已经使用原生的js,获取过来jQuery对象varmyvideo=document.querySelector(′video′);//(myvideo).play();错误,jq里面没有这个方法
2.jQuery对象转换为DOM对象
myvideo.play();//谷歌浏览器禁用自动播放功能,其他浏览器可以,加上muted就可以了
1)$(‘div’)[index] index是索引号
(
m
y
v
i
d
e
o
)
[
0
]
.
p
l
a
y
(
)
;
2
)
(myvideo)[0].play(); 2)
(myvideo)[0].play();2)(‘div’).get(index) index是索引号
$(myvideo).get(0).play()
jQuery常用API
jQuery选择器:
$(“选择器”);//里面选择器直接写CSS选择器即可,但是要加引号
ID选择器 $("#id") 获取指定ID的元素
全选选择器 $(’*’) 匹配所有元素
类选择器 $(".class") 获取同一类class的元素
标签选择器 $(“div”) 获取同一类标签的所有元素
并集选择器 $(“div,p,li”) 选取多个元素
交集选择器 $(“li.current”) 交集元素
jQuery层级选择器:
子代选择器 $(“ul>li”); 使用>号,获取亲儿子层级的元素;注意,并不会获取孙子层级的元素
后代选择器 $(“ul li”); 使用空格,代表后代选择器,获取ul下的所有元素,包括孙子等
jQuery设置样式:
$(“div”).css(‘属性’,‘值’)
给div(有四个)设置为粉色
$(“div”).css(“background”,“pink”);//4个div都改了颜色
隐式迭代:遍历内部的DOM元素(为数组形式存储)的过程
把匹配的所有元素内部进行遍历循环,给每一个元素添加css这个方法
jQuery筛选选择器:
语法 用法 描述
:first $(‘li:first’) 获取第一个li元素
:last $(‘li:last’) 获取最后一个li元素
:eq(index) $(“li:eq(2)”) 获取到的li元素中,选择索引号为2的元素,索引号index从0开始
:odd $(“li:odd”) 获取到的元素中,选择索引号为奇数的元素
:even $(“li:even”) 获取到的li元素中,选择索引号为偶数的元素
jQuery筛选方法:
语法 用法 说明
parent() $(“li”).parent(); 查找父级
children(selector)
(
"
u
l
"
)
.
c
h
i
l
d
r
e
n
(
"
l
i
"
)
相
当
于
("ul").children("li") 相当于
("ul").children("li")相当于(“ul>li”),最近一级(亲儿子)
find(selector)
(
"
u
l
"
)
.
f
i
n
d
(
"
l
i
"
)
;
相
当
于
("ul").find("li"); 相当于
("ul").find("li");相当于(“ul li”)后代选择器
siblings(selector) $(".first").siblings(“li”); 查找兄弟节点,不包括自己本身
nextAll([exper]) $(".first").nextAll() 查找当前元素之后所有的同辈元素
prevtAll([exper]) $(".last").prevtAll() 查找当前元素之前所有的同辈元素
hasClass(class) $(‘div’).hasClass(“protected”) 检查当前的元素是否含有某个特定的类,如果有,则返回true
eq(index)
(
"
l
i
"
)
.
e
q
(
2
)
;
相
当
于
("li").eq(2); 相当于
("li").eq(2);相当于(“li:eq(2)”),index从0开始
新浪下拉菜单案例:
判断是否有某个类名:
排他思想:
$(function(){
$(“button”).click(function(){
$(this).css(“background”,“pink”);
KaTeX parse error: Expected 'EOF', got '}' at position 49: …ckground",""); }̲); }) 淘宝服饰精品案例:…(this).index()
$(function(){
KaTeX parse error: Expected 'EOF', got '#' at position 3: ("#̲left li").mouse…(this).index();
console.log(index);
$("#content div").eq(index).show();
$("#content div").eq(index).siblings().hide();
});
})
jQuery样式操作:
1.参数只写属性名,则是返回属性值
$(this).css(“color”);
2.参数是属性名,属性值,逗号分隔,是设置一组样式,属性必须加引号,值如果是数字可以不用跟单位和引号
$(this).css(“color”,“red”);
3.参数可以是对象形式、方便设置多组样式。属性名和属性值用冒号隔开,属性可以不用加引号
$(this).css({“color”:“white”,“font-size”:“20px”});
$(“div”).css({
width:400,
height:400,
backgroundColor:“pink”//符合属性,驼峰命名法
})
设置类样式方法:
$(“div”).addClass(“current”);//操作类里面的参数不要加点
$(“div”).removeClass(“current”);
切换类:
$(“div”).toggleClass(“current”);
tab栏切换:
$(function(){
$(".tab_list li").click(function(){
(
t
h
i
s
)
.
a
d
d
C
l
a
s
s
(
"
c
u
r
r
e
n
t
"
)
.
s
i
b
l
i
n
g
s
(
)
.
r
e
m
o
v
e
C
l
a
s
s
(
"
c
u
r
r
e
n
t
"
)
;
v
a
r
i
n
d
e
x
=
(this).addClass("current").siblings().removeClass("current"); var index=
(this).addClass("current").siblings().removeClass("current");varindex=(this).index();
console.log(index);
$(".tab_con .item").eq(index).show().siblings().hide();
});
})
类操作与className的区别:
className覆盖原先的类名
类操作不会覆盖原先的类名
jQuery效果:
显示隐藏:
show([speed,[easing],[fn]])
speed:三种预定速度之一的字符串(“slow”,“normal”,or “fast”)或表示动画时长的毫秒数值(如:1000).
easing:切换效果(swing,linear)
fn:回调函数
hide([speed,[easing],[fn]])
toggle([speed,[easing],[fn]])
//一般情况下都不加参数
滑动:
slideDown([speed,[easing],[fn]])
slideUp([speed,[easing],[fn]])
slideToggle([speed,[easing],[fn]])
淡入淡出:
fadeIn()
fadeOut()
fadeToggle()淡入淡出相互切换
fadeTo([speed],opacity,[easing],[fn])调整不透明度
必须写 透明度 切换效果 回调函数
* *
自定义动画:
animate(params,[speed},[easing],[fn])
{left:200,top:300,opacity:.4}
事件切换:
hover([over,]out)
over:鼠标移到元素上要触发的函数(相当于mouseenter)
out:鼠标移出元素要触发的函数(相当于mouseleave)
事件切换:
$(".nav>li").hover(function(){
$(this).children(“ul”).slideDown(200);
},function(){
$(this).children(“ul”).slideUp(200);
})
简化:hover()如果只写一个函数那么鼠标经过和鼠标离开都会触发
$(".nav>li").hover(function(){
$(this).children(“ul”).slideToggle();
});
动画队列及其停止排队的方法:
stop();
$(".nav>li").hover(function(){
//stop方法必须写在动画的前面
$(this).children(“ul”).stop().slideToggle();
});
王者荣耀手风琴案例:
$(function(){
$(".king li").mouseenter(function(){
$(this).stop().animate({
width:224
},200).find(".small").stop().fadeOut().siblings(".big").stop().fadeIn();
$(this).siblings(“li”).stop().antimate({
width:224
}).find(".small").fadeIn().siblings(".big").fadeOut();
})
})