jquery

jquery

1.jquery的基本使用

1.1jquery入口函数
//1.
$(document).ready(function(){
    ;//此处是页面DOM加载完成的入口
});
//2.
$(function(){
    ;//此处是页面DOM加载完成的入口
})

1.等着DOM结构渲染完毕即可执行内部代码,不必等到所有外部资源加载完成,jquery帮我们完成了封装

2.相当于原生js的DOMContentLoaded

3.不同于原生js中的事件load事件是等页面文档、外部的js文件、css文件、图片加载完毕才执行内部代码

1.2jquery的顶级对象$

1.$是jquery的别称,在代码中可以使用jquery代替$

2.$是jquery的顶级对象,相当于原生js中的window。把元素利用$包装成jquery对象,就可以调用jquery中的方法。

1.3jquery对象和DOM对象

jquery对象其实就是DOM对象的包装集包装了DOM对象的集合(伪数组)

//1.DOM对象:用原生js获取过来的对象就是DOM对象
var myDiv=document.querSelector('div');//myDiv就是DOM对象
console.dir(myDiv);
//2.jquery对象:用jquery方法获取过来的对象就是jquery对象。本质:通过$把DOM元素进行了包装
$('div');//$('div')是一个jquery对象
console.dir($('div'));
//3.jquery对象只能使用jquery方法
//DOM对象只能使用原生js属性和方法
1.4jquery对象和DOM对象的转换

原生的一些属性和方法jquery没有封装,想要使用这些方法就需要把jquery对象转化为DOM对象才能使用

1.DOM对象转换为jquery对象:

​ $(DOM对象)

2.jquery对象转换为DOM对象(两种方式)

​ 1.$(‘div’)[index] index是索引号

​ 2.$(‘div’).get(index) index是索引号

<video src='' muted></video>
<script>
	//1.DOM对象转换为jquery对象
    var myvideo=document.querySelector('video');//DOM属性
    $(myvideo)//转换为jquery对象
    //2.jquery对象转换为DOM对象
    $('video')//jquery对象
    $('video')[0].play()//转化为DOM对象使用play属性
    $('video').get(0).play()//转换为DOM对象使用play属性
</script>

2.jquery常用api

2.1jquery选择器
2.1.1jquery基础选择器

jquery选择器是jquery提供的一组方法,让我们更方便的获取到页面中的元素。jquery选择器返回的是jquery对象

名称用法描述
ID选择器$(’#id’)获取指定ID的元素
类选择器$(’.class’)获取同一类class的元素
标签选择器$(‘div’)获取同一类标签的元素
并集选择器$(‘div,p,li’)使用逗号分割,只要符合条件之一就可
交集选择器$(‘div.redClass’)获取class为redClass的div元素
子代选择器$(‘ul>li’)使用>号,获取儿子层级的元素,注意并不会获取孙子层级的元素
后代选择器$(‘ul li’)使用空格,代表后代选择器,获取ul下所有li元素,包括孙子等
2.1.2隐式迭代

遍历内部DOM元素(伪数组形式存储)的过程就叫做隐式迭代

简单理解:给匹配到的所有元素进行循环遍历,执行相应的方法,而不用我们再进行循环,简化操作,方便调用。

$('div').css('background','pink');
//将所有div标签的背景颜色全改为粉色
//隐式迭代就是把匹配的所有元素内部进行遍历循环,给每一个元素添加css这个方法
2.1.3jquery筛选选择器
语法用法描述
:first$(‘li:first’)获取第一个li元素
:last$(‘li:last’)获取最后一个li元素
:eq(index)$(‘li:eq(2)’)获取到的li元素中,选择索引号为2的元素
:odd$(‘li:odd’)选择索引号为奇数的所有li元素
:even$(‘li:even’)选择索引号为偶数的所有li元素
2.1.4jquery筛选方法
语法用法说明
parent()$(‘li’).parent查找父级
children(selector)$(‘ul’).children(‘li’)相当于$(‘ul>li’),最近一级(亲儿子)
find(selector)$(‘ul’).find(‘li’)相当于$(‘ul li’),后代选择器
siblings(selector)$(’.first’).siblings(‘li’)查找兄弟节点,不包括自己本身
nextAll([expr])$(’.first’).nextAll()查找当前元素之后所有的同辈元素
prevtAll([expr])$(’.last’).prevtAll()查找当前元素之前所有同辈元素
hasClass(class)$(div).hasClass(protected)检查当前元素是否含有某个特定的类,如果有,返回true
eq(index)$(‘li’).eq(2)相当于$(‘li:eq(2)’)
2.2样式设置
2.2.1类名设置

jquery可以使用css方法来修改简单元素样式;也可以操作类,修改多个样式

1.参数只写属性名,则返回属性值

$(this).css('color');

2.参数是属性名,属性值,逗号分隔,是设置一组样式

$(this).css('color','red');

3.参数可以是对象形式,方便设置多组样式。

$(this).css({'color':'red','font-size':'20px'});
2.2.2设置类样式方法

1.添加类

$('div').addClass('class');

2.删除类

$('div').removeClass('class');

3.切换类

$('div').toggleClass('class');
2.2.3类操作与className区别

原生js中className会覆盖元素原先里面的类名

jquery里面类操作只是对指定类进行操作,不影响原先的类名

2.3jquery效果
2.3.1显示隐藏

1.显示

$('div').show([speed,[easing],[fn]]);

2.隐藏

$('div').hide([speed,[easing],[fn]]);

3.切换

$('div').toggle([speed,[easing],[fn]]);

4.参数含义

​ 1.参数可以都省略,无动画直接显示

​ 2.speed:三种预定速度之一的字符串(slow,normal,fast)或表示动画时长的毫秒数

​ 3.easing:(Optional)用来指定切换效果,默认是swing,可用参数 linear

​ 4.fn:回调函数

2.3.2滑动效果

1.向下滑动

$('div').slideDown([speed,[easing],[fn]]);

2.向上滑动

$('div').slideUp([speed,[easing],[fn]]);

3.切换滑动

$('div').slideToggle([speeed,[easing],[fn]]);

4.参数含义

​ 1.参数可以都省略,无动画直接显示

​ 2.speed:三种预定速度之一的字符串(slow,normal,fast)或表示动画时长的毫秒数

​ 3.easing:(Optional)用来指定切换效果,默认是swing,可用参数 linear

​ 4.fn:回调函数

2.3.3动画队列及其停止排队方法

1.动画或效果队列

动画或者效果一旦触发就会执行,如果多次触发,就会造成多个动画或者效果排队执行

2.停止排队

stop()

1.stop()方法用于停止动画或者效果

2.注意:stop()写到动画或者效果的前面,相当于停止结束上一次的动画

2.3.4淡入淡出效果

1.淡入效果

$('div').fadeIn([speed,[easing],[fn]]);

speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)

easing:(Optional) 用来指定切换效果,默认是"swing",可用参数"linear"

fn:在动画完成时执行的函数,每个元素执行一次

2.淡出效果

$('div').fadeOut([speed,[easing],[fn]]);

speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)

easing:(Optional) 用来指定切换效果,默认是"swing",可用参数"linear"

fn:在动画完成时执行的函数,每个元素执行一次

3.淡入淡出切换

$('div').fadeToggle([speed,[easing],[fn]]);

speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)

easing:(Optional) 用来指定切换效果,默认是"swing",可用参数"linear"

fn:在动画完成时执行的函数,每个元素执行一次

4.修改透明度

$('div').fadeTo([[speed],opacity,[easing],[fn]]);

speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)

opacity:一个0至1之间表示透明度的数字。

easing:(Optional) 用来指定切换效果,默认是"swing",可用参数"linear"

fn:在动画完成时执行的函数,每个元素执行一次。

2.4自定义动画函数
$('div').animate(params,[speed],[easing],[fn]);

params:想要更改的样式属性,以对象形式传递,必须写。属性名可以不用带引号,如果是复合属性则需要采用驼峰命名法。

speed:三种预定速度之一的字符串(“slow”,“normal”, or “fast”)或表示动画时长的毫秒数值(如:1000)

easing:要使用的擦除效果的名称(需要插件支持).默认jQuery提供"linear" 和 “swing”.

fn:在动画完成时执行的函数,每个元素执行一次。

2.4jquery属性操作
2.4.1设置或获取元素固有属性值prop()

元素固有属性就是元素本身自带的属性

1.获取属性语法

$('div').prop("属性");

2.设置属性语法

$('div').prop('属性','属性值');
2.4.2设置或获取元素自定义属性值attr()

1.获取属性语法

$('div').attr('属性');

2.设置属性语法

$('div').attr('属性','属性值');
2.5jquery内容文本值

主要针对元素的内容还有表单的值操作

2.5.1普通元素内容html()

相当于原生innerHTML

.html() //获取元素里的内容  
.html('内容')//设置元素的内容

​ 在一个 HTML 文档中, 我们可以使用 .html() 方法来获取任意一个元素的内容。 如果选择器匹配多于一个的元素,那么只有第一个匹配元素的 HTML 内容会被获取。

2.5.2获取设置元素文本内容 text()

相当于原生innerText

.text() //获取元素里的内容 只获得元素的内容不带标签
.text('内容') //设置元素的内容
2.5.3获取设置表单值 val()

相当于原生value()

.val()//获取表单内的内容
.val('内容')//设置表单的内容
2.6jquery元素操作

主要是遍历、创建、添加、删除元素操作。

2.6.1遍历元素

jquery隐式迭代是对同一类元素做了同样的操作。如果想要给同一类元素做不同操作,就需要用到遍历

语法1:

$('div').each(function(index,domEle){});

1.each()方法遍历匹配的每一个元素。主要用DOM处理。each每一个

2.里面的回调1函数有两个参数:index是每个元素的索引号;domEle是每个DOM元素,不是jquery元素

3.想要使用jQuery方法,需要给这个DOM元素转换为jquery对象$(domEle)

语法2:

$.each(object,function(index,element){});

1.$.each()方法可用于遍历任何对象。主要用于数据处理,比如数组,对象

2.里面的函数有2个参数:index是每个元素的索引号;element遍历内容

2.6.2创建元素

语法:

$('<li></li>');

动态创建一个li标签

2.6.3添加元素

1.内部添加

element.append('内容');

把内容放到匹配元素内部最后面,类似原生appendChild

element.prepend('内容');

把内容放到匹配元素内部最前面

2.外部添加

element.after('内容');//把内容放到目标元素后面
element.before('内容');//把内容放到目标元素的前面
2.6.4删除元素

1.remove()方法

删除元素标签

element.remove([expr]);

expr:用于筛选的jquery表达式

2.empty()方法

删除匹配的元素集合中所有的子节点。

element.empty()
2.7jquery尺寸、位置操作
2.7.1jquery尺寸
语法用法
width()/height()取得匹配元素宽度或高度,只算width/height
innerWidth()/innerHeight()取得匹配元素宽度或高度,包含padding
outerWidth()/outerHeight()取得匹配元素宽度或高度,包含padding、border
outerWidth(true)/outerHeight()取得匹配元素宽度或高度,包含padding、border、margin

以上参数为空,则是获取相应值,返回是数字型

如果参数为数字,则是修改相应值

参数可以不用写单位

2.7.2jquery位置

位置主要有三个:offset()、position()、scrollTop()/scrollLeft()

1.offset()设置或获取元素偏移

​ 1.offset()方法设置或返回被选元素相对与文档的偏移坐标,跟父级没有关系

​ 2.该方法有两个属性left、top

​ 3.可以设置元素的偏移:offset({top:10,left:10});

2.position()获取元素偏移

​ 1.获取匹配元素相对于父元素的偏移

​ 2.返回的对象包含两个整型属性:top和left

3.scrollTop()/scrollLeft()设置或获取元素滚动量

​ 获取匹配元素相对滚动条顶部的偏移

3.jquery事件处理

3.1jquery事件注册
3.1.1单个事件注册
element.事件(function(){});
3.1.2事件处理on()绑定事件
element.on(events,[selector],fn);

1.events:一个或多个用空格分隔的事件类型

2.selector:元素的子元素选择器

3.1.2on()方法的优势

1.可以绑定多个事件

2.可以事件委派

3.动态创建的元素,click()没有办法绑定事件,on()可以给动态生成的元素绑定事件

3.1.3one()方法注册一次性事件
one(type,[data],fn)

**type:**添加到元素的一个或多个事件。由空格分隔多个事件。必须是有效的事件。

**data:**将要传递给事件处理函数的数据映射

**fn:**每当事件触发时执行的函数。

3.1.4自动触发事件trigger()

1.简写形式

element.click();

2.自动触发模式

element.trigger("type");

3.自动触发模式,不会触发默认行为

element.triggerHandler(type);
3.2事件解除

off()方法可以移除通过on()方法添加的事件处理程序。

off(events,[selector],[fn]);

events:一个或多个空格分隔的事件类型和可选的命名空间,或仅仅是命名空间,比如"click", “keydown.myPlugin”, 或者 “.myPlugin”.

selector:一个最初传递到.on()事件处理程序附加的选择器。

fn:事件处理程序函数以前附加事件上,或特殊值false.

3.3jquery事件对象

参照jsDOM事件对象

4.jquery其他方法

4.1jquery对象拷贝

如果想要把某个对象拷贝(合并)给另一个对象使用,可以使用$.extend()方法

$.extend([deep],target,object1,[objectN]);

1.deep:如果值为true,则执行深拷贝,默认为false,浅拷贝

2.target:待修改对象

3.object1:待合并到target的对象

4.objectN:待合并到target的对象

5.浅拷贝是把拷贝的对象复杂数据类型中的地址拷贝给目标对象

6.深拷贝完全克隆(拷贝的对象,而不是地址)

4.2jquery多库共存

jquery使用$作为标识符,但其他js库也会使用这个符号作为标识符,这样一起使用会引起冲突

解决方案:

1.把里面的$符号统一改为jQuery

2.jQuery变量规定新的名称:$.noConflict()

4.3jquery插件
4.3.1插件网址

jquery插件常用的网站:

1.jquery插件库:http://www.jq22.com/

2.jquery之家:http://www.htmleaf.com/

jquery插件使用步骤:

1.引入相关文件。(jquery文件和插件文件)

2.复制相关html、css、js(调用插件)。

4.3.2图片懒加载插件

图片使用延迟加载在可提高网页下载速度。它能帮助减轻服务器负载

使用jquery插件库EasyLazyload

4.3.3全屏滚动插件

网址:

1.github:https://github.com/alvarotrigo/fullPage.js

2.中文翻译网站:http://www.dowebok.com/demo/2014/77/

4.3.4botstrap js插件

bootstrap框架也是依赖jquery开发的

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Alonzo de blog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值