jQuery效果

文章目录

1、jQuery对象和DOM对象相互转换

var myvideo = document.querySelector('video');//DOM对象
$(myvideo);//DOM对象转换为jQuery对象
$('video')[0];//jQuery对象转换为DOM对象
$('video').get(0);//jQuery对象转换为DOM对象

2.jQuery效果

2.1普通动画

2.1.1显示show

show([speed,[easing],[fn]]) 参数都可以省略
easing:切换效果
fn:回调函数,每个动画完毕后执行的函数

2.1.2隐藏hide

同上

2.1.3切换toggle

同上

2.2滑动动画

2.2.1下拉动画slidedown()

2.2.2.上拉动画slideup()

2.2.3滑动切换slidetoggle()

2.3事件切换hover()

hover(over{},out{}) 参数可以省略
如果只写一个函数,那么鼠标经过和离开都会触发函数

2.4动画队列

2.4.1停止排队stop()

停止上一次动画,一定要写在动画函数前

2.5淡入淡出效果

2.5.1淡入fadeIn()

2.5.2淡出fadeOut()

2.5.3切换fadeToggle()

2.5.4渐进到某个透明度fadeTo()

opacity:透明度,0~1之间

自定义动画animate()

animate(params,speed,easing,fn):params属性必须要写
params:想要更改样式的属性,以对象形式传递

3.属性操作

3.1属性操作

3.1.1获取/更改属性prop()

3.1.2获取/更改元素自定义属性attr()

3.1.3获取/更改元素自定义属性data()

以内存的形式获取和存放属性值,不会改变DOM

4.内容设置

4.1获取元素内容html()

4.2获取元素文本内容text()

4.3获取设置表单值val()

val()等价原生js里的value

4.4获取祖先元素里的内容parents()

4.5保留n位小数toFixed()

5.元素操作

5.1遍历元素

jQuery的隐式迭代是遍历所有的元素,执行相同的操作,要执行不同的操作时,隐式迭代就不行了

each()方法1

$("selector").each(function(index,domEle){ xxx,  })

相当于进行了for循环,对每个元素赋予了一个index索引值,并将每个DOM对象提取了出来
然后通过将需要改变的参数放入数组中,在循环中利用索引号调用参数,就可以实现对每个元素进行不同的操作

each()方法2
主要用于遍历数据

$.each($("selector"),function(index,domEle){})

5.2创建、添加和删除元素

5.2.1创建

$("<di}></>")

5.2.3添加

内部添加

element.append("元素")//将元素放在element中的匹配元素的内部的最后面,类似于原生的appendChild
element.prepend("元素")//将元素放在element中的匹配元素的内部的最前面

外部添加

element.after("元素")//将元素放置在element中的匹配元素的后面
element.before("元素")//将元素放置在element中的匹配元素的前面

删除

element.remove()//删除element中的匹配元素本身
element.empty()//删除element中的匹配元素的所有子节点
element.html("")//清空element中的匹配元素内容,注意括号内是空字符串,这个方法和empty一样

5.3获取元素尺寸大小位置

jQuery 提供多个处理尺寸的重要方法:

5.3.1获取元素本身大小

width()
height()

5.3.2获取元素及padding大小

innerWidth()
innerHeight()

5.3.3获取元素整体大小(不包含margin/参数为true时包含)

outerWidth()
outerHeight()

5.3.4获取元素位置offset()//以文档为基准,跟父元素没关系

5.3.5获取元素位置position()//以父亲为基准,如果父亲没有定位,则以文档为基准。且不能设置

5.3.4获取元素被卷头部/左侧scrollTop()/scrollLeft()

6.jQuery事件

6.1事件处理on()

6.1.1实现事件处理(一个或多个事件):

$("selector").on("click",function(){})

6.1.2实现事件委托:

$("selector").on("click","后代元素",function(){})

6.2事件解绑off()

6.2.1解绑所有

.off()//不带参数

6.2.2解绑指定事件

.off("click")

6.2.3解除事件委托

.off("click","后代元素")

6.3只触发一次的事件one()

6.4自动触发事件trigger()

6.4.1普通自动触发事件

$("selector").click()

注意:自动触发事件的前提是,这个元素绑定了此事件

6.4.2 trigger()自动触发事件

$("selector").trigger("click");

6.4.2 triggerHandle()自动触发事件

不会触发元素默认行为

6.5jQuery事件对象event

当元素绑定了事件并且触发了事件后,就会产生事件对象event
event中包含了各种参数
可以利用event阻止默认行为:event.preventDefault()或者return false
阻止冒泡:event.stopPropagation

7.其他方法

7.1对象拷贝extend()

$.extend([deep]/*不写此参数默认浅拷贝false*/,target,object1,...)

可以同时拷贝多个对象,单相同的类型的数据后拷贝的数据会覆盖前面的数据

深拷贝和浅拷贝是只针对Object和Array这样的引用数据类型的。
深拷贝和浅拷贝的示意图大致如下:
​​
图片描述
在这里插入图片描述

浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。但深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象。
三、赋值和浅拷贝的区别
当我们把一个对象赋值给一个新的变量时,赋的其实是该对象的在栈中的地址,而不是堆中的数据。也就是两个对象指向的是同一个存储空间,无论哪个对象发生改变,其实都是改变的存储空间的内容,因此,两个对象是联动的。
浅拷贝是按位拷贝对象,它会创建一个新对象,这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型,拷贝的就是基本类型的值;如果属性是内存地址(引用类型),拷贝的就是内存地址 ,因此如果其中一个对象改变了这个地址,就会影响到另一个对象。即默认拷贝构造函数只是对对象进行浅拷贝复制(逐个成员依次拷贝),即只复制对象空间而不复制资源。

所以,如果是浅拷贝的话,修改新的对象中的复杂参数也会影响拷贝对象中的参数

7.2多库共存

7.2.1$符号冲突

那么就可以把jQuery的$符号换成使用jQuery

7.2.2将$符号替换成其他字符

使用$.noConflict()方法:var xxx = $.noConflict()这时xxx就作为$符号的替换了

7.3jQuery插件

7.3.1p62插件使用

7.3.2图片懒加载

提高网页性能,减轻服务器负担
使用懒加载插件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值