JQuery DOM 操作(上)
什么是JQuery
jQuery
是一个轻量级的JavaScript
库,它极大地简化了JavaScript
编程。
jQuery
包含以下功能:
HTML
元素选取HTML
元素操作CSS
操作HTML
事件函数JavaScript
特效和动画HTML
DOM
遍历和修改AJAX
Utilities
使用
官网下载导入
https://jquery.com/download/
CDN
载入jQuery
https://www.bootcdn.cn/jquery/
语法
jQuery
语法是通过选取HTML
元素,并对选取的元素执行某些操作。
基础语法:
1 | $(selector).action() |
通过美元符号($
)定义jQuery
。
- 文档就绪事件
为了防止文档在完全加载(就绪)之前运行
jQuery
代码,即在DOM
加载完成后才可以对DOM
进行操作。如果在文档没有完全加载之前就运行函数,操作可能失败。
1 | $(document).ready(function(){ |
简洁写法:
1 | $(function() { |
选择器
jQuery
选择器可以快速选择HTML
元素进行操作。
元素选择器
- 基于元素名选取元素
1 | $(document).ready(function(){ |
id
(#
)选择器- 基于
id
选取元素
- 基于
1 | $(document).ready(function(){ |
class
(.
)选择器- 基于
class
选取元素
- 基于
1 | $(document).ready(function(){ |
事件
事件,即页面对访问者的响应。
常见DOM
事件
鼠标事件 | 键盘事件 | 表单事件 | 文档/窗口事件 |
---|---|---|---|
click | keypress | submit | load |
dblclick | keydown | change | resize |
mouseenter | keyup | focus | scroll |
mouseleave | blur | unload | |
hover |
- 事件方法
点击事件click()
1 | $("p").click(function(){ |
双击事件dblclick()
1 | $("p").dblclick(function(){ |
鼠标进入mouseenter()
鼠标离开mouseleave()
按下鼠标mousedown()
松开鼠标mouseup()
光标悬停hover()
元素获得焦点focus()
元素失去焦点blur()
使用方式大体相同,具体实现效果根据需求使用。
jQuery
效果
显示/隐藏
通过
jQuery
,可以使用hide()
和show()
方法来隐藏和显示HTML
元素。
1 | <!DOCTYPE html> |
语法:
1 | $(selector).hide(speed,callback); |
可选的 speed
参数规定隐藏/显示的速度,可以取以下值:"slow"
、"fast"
或毫秒。
可选的 callback
参数是隐藏或显示完成后所执行的函数名称。
1 |
|
通过
jQuery
,还可以使用toggle()
方法来切换hide()
和show()
方法。
1 |
|
淡入淡出
fadeIn()
jQuery
fadeIn()
用于淡入已隐藏的元素。
1 |
|
语法:
1 | $(selector).fadeIn(speed,callback); |
fadeOut()
jQuery
fadeOut()
方法用于淡出可见元素。
1 |
|
语法:
1 | $(selector).fadeOut(speed,callback); |
fadeToggle()
jQuery
fadeToggle()
方法可以在fadeIn()
与fadeOut()
方法之间进行切换。
如果元素已淡出,则 fadeToggle()
会向元素添加淡入效果。
如果元素已淡入,则 fadeToggle()
会向元素添加淡出效果。
1 |
|
语法:
1 | $(selector).fadeToggle(speed,callback); |
fadeTo()
jQuery
fadeTo()
方法允许渐变为给定的不透明度(值介于0
与1
之间)。
1 |
|
语法:
1 | $(selector).fadeTo(speed,opacity,callback); |
滑动
slideDown()
1 |
|
语法:
1 | $(selector).slideDown(speed,callback); |
slideUp()
1 |
|
语法:
1 | $(selector).slideUp(speed,callback); |
slideToggle()
jQuery
slideToggle()
方法可以在slideDown()
与slideUp()
方法之间进行切换。
如果元素向下滑动,则 slideToggle() 可向上滑动它们。
如果元素向上滑动,则 slideToggle() 可向下滑动它们。
1 |
|
语法:
1 | $(selector).slideToggle(speed,callback); |
动画
animate()
jQuery
animate()
方法用于创建自定义动画。默认情况下,所有的HTML
元素有一个静态的位置,且是不可移动的。 如果需要改变为,我们需要将元素的position
属性设置为relative
,fixed
, 或absolute
!
1 | $("button").click(function(){ |
- 操作多个属性
1 | $("button").click(function(){ |
- 使用相对值
1 | $("button").click(function(){ |
- 使用队列功能
1 |
|
语法:
1 | $(selector).animate({params},speed,callback); |
停止动画
stop()
jQuery
stop()
方法用于停止动画或效果,在它们完成之前。stop()
方法适用于所有jQuery
效果函数,包括滑动、淡入淡出和自定义动画。
语法:
1 | $(selector).stop(stopAll,goToEnd); |
可选的 stopAll
参数规定是否应该清除动画队列。默认是 false
,即仅停止活动的动画,允许任何排入队列的动画向后执行。
可选的 goToEnd
参数规定是否立即完成当前动画。默认是 false
。
因此,默认地,stop()
会清除在被选元素上指定的当前动画。
1 |
|
Callback
Callback
函数在当前效果(动画) 100% 完成之后执行。回调函数在以上效果中作为可选参数,如果选择传入,则会在效果完成后触发函数。
链
jQuery
允许把动作/方法链接在一起。这种链式操作是JS
的一种特性。
1 | $("#p1").css("color","red").slideUp(2000).slideDown(2000); |