jQuery(爱前端)

一 jQuery 简介

官网:www.jquery.com

口号:写更少的代码,做更多的事情

jQuery 是一个快速、小型的、特性很多的JS库,它把很多事儿都变得简单。jQuery是免费的、开源的。

jQuery 是 DOM 编程领域的霸主,极大的简化了原生 JavaScript 的 DOM 编程

jQuery 中含有丰富的轮子,完美解决了选择元素难、样式难、动画难、批量操作难等各种兼容问题,

让工程师只需要思考业务,而不必思考细枝末节的兼容问题

 

jQuery有两条版本线:1.X、2.X

 jQuery 2.X 和 1.X 的功能完全一致,API完全一致,但是 2.X 不兼容 IE6、7、8

下载的时候有两个选择:

 

 二 jQuery 整体感知

2.1 选择器

$() 函数就是 jQuery 的核心函数,query 就是选择的意思,也就是说 jQuery的核心招牌功能就是选择元素:

$("#box ul li.haha span").css("background-color","red");

语法: $(“选择器”)

可以用 jQuery来代替,jQuery 是同一个函数: 

jQuery("#box ul li.haha span").css("background-color","red");

2.2 样式

 得到样式(得到计算后的样式):$(".box").css("width");

设置样式: 语法  $(“选择器”).css(JSON);

2.3 动画 

jQuery 内部含有一个运动框架    animate 函数

2.4 批量添加监听、节点关系

 

三 jQuery 

3.1 $() 函数

jQuery 对象不是原生 JS  对象 

$("选择器") 选择出来的东西,是一个类数组对象,是 jQuery 自己的对象,这个 jQuery 对象后面不能跟着原生 JS 的语法:

 $("#box").style.backgroundColor = "red";

因为 .style.backgroundColor 是原生JS语法,$() 原则的对象是 jQuery 对象,不能跟着原生 

 jQuery 对象,转为原生 JS 对象

 

3.2 引号问题

$('选择器')  

注意引号不能丢!!在jQuery世界中,只有三个东西不能加引号,其他必须加引号:

 

3.3 支持的选择器

jQuery 支持所有的 css2.1 的选择器

也支持部分 css3 的选择器

3.4 筛选器

特别的,eq 可以单独提炼为方法,可以连续打点: 

提炼出来的好处是,可以用变量

 

3.5 css 函数

css 函数可以读样式,可以设样式(所有的数值,不需要单位)

读样式,可以读取计算后样式,写一个参数,是不是驼峰,无所谓,但是必须加引号

 

特别的,还支持 += 写法: 

3.5 animate 函数

有没有缓冲呢,有,jQuery 需要插件来完成,我们日后说。

jQuery 默认不是匀速,是easeInOut

jQuery默认有一个处理机制,叫做动画排队。当一个元素接收到了两个 animate 命令之后,后面的animate会排队

先1000毫秒横着跑,然后1000毫秒竖着跑。动画总时长2000。

如果想让元素斜着跑,就是同时变化 left 和 top,就写在同一个 JSON 里面:

不同的元素,不排队,是同时的

 

3.6 事件监听

jQuery颠覆了我们的行文习惯:

事件名一律不写 on。特别的,鼠标进入改成了 mouseenter,鼠标离开改为了mouseleave。

 

四 序与迭代

4.1 eq() 方法

看结构: 两个并列盒子 .box1 和 .box2 中都有 5 个小盒子 div

想让 .box2 中的第二个盒子背景变绿

$('.box2>p:eq(1)').css('backgroundColor','green');
$('p').eq(6).css('backgroundColor','green');
$('.cur').eq(2).css('backgroundColor','green');
$('.box2>.cur').eq(0).css('backgroundColor','green');

注释不同选择器下对应的下标

$() 函数返回的是一组元素,每个方法比如 css 方法内部都有 for 循环迭代 

 4.2 index() 方法

返回这个元素在亲兄弟中的排名,无视选择器怎么选。

$(this).index() 是一个很常见的写法,表示触发这个事件的元素,在自己亲兄弟中的排名

点击上一排 div 中的 p, 下一排对应序号的 p 变色

 

强调一下,是 index() 方法,而不是属性!

 4.3 each()

each() 表示遍历节点,也叫作迭代符合条件的节点

$('p') 调用 each() 方法,同样的设置,对比 i 和 $(this).index() 效果

4.4 size() 方法 和 length 属性

表示 jQuery 对象中元素的个数

 

五 动画相关

5.1 内置  show() , hide(), toggle()

特别的,如果show()、hide()、toggle()里面有数值,将变为动画

 也可以加回调函数

 

5.2 slideDown(), slideUp, slideToggle()方法

以上分别是:下滑展开,上滑收回,滑动切换

slideDown() 的起点一定是 display:none 换句话说,只有 display:none 的元素,才能够调用 slideDown()

同样的,slideDown、slideUp、slideToggle 里面可以写动画时间、回调函数。

动画机理:

一个 display:none 的元素,瞬间显示,瞬间高度变为 0,然后 jQuery 自己捕捉原有的 height 设置为动画的终点

下拉菜单: li > a + div

  mouseenter 事件应该添加在 li 上,而不是 a 上,添加在 a 上,则不能选择到下拉框中的内容

  div 的位置应该贴着 li 元素,不能有缝隙,因为缝隙不属于 li 的范围,也会选择不到下拉框中的内容

  如果想要有缝隙,下拉框再套一个盒子,用 padding 表示缝隙

 

$(this).find('div').slideDown(200); 

5.3 fadeIn(), fadeOut, fadtTo(), fadeToggle() 方法

以上分别是:淡入, 淡出,淡到一定值,淡入淡出切换

 动画机理:

一个 display:none 的元素,瞬间可见,然后瞬间变为 opacity:0,往自己的 opacity 上变。

如果没有设置 opacity,就往1变。

 fadeTo() 有三个参数,第一个参数是动画的时间,第二个参数是要变到的透明度,第三个参数是回调函数 

 fadeTo的起点不一定是 display:none;

 IE6、7、8 兼容,不用关心 filter 这个东西了,jQuery已经帮你写了兼容

 

jQuery 呼吸轮播

图片部分遮盖案例(有文字):

  遮盖元素设置 opacity: 0.5;  文字的透明度也会改变。处理: 文字写到其他元素中

 

5.4 stop()

语法 :stop( 是否清除队列, 是否瞬间完成当前动画 )

如果没有写 true 或者 false,默认是 false

$("div").stop( true ).animate({"left":100},1000);

5.5 finish()

finish()  瞬间完成所有动画队列

$("div").finish();

 

手风琴案例:

ul > li*5 直接用 width 的变化来设置,动画时,最右侧可能会出现空白区域

用定位来做:每个元素鼠标 hover 时 left 到固定位置,其它元素也移动到固定位置

5.6 delay()

delay延迟,可以使用连续打点,必须放在运动语句之前

 

 

 5.7  is(':animated')

is() 方法表示身份探测,返回 true, false

判断是否在运动中,可以防止动画的积累:

和之前的 stop(),不一样,动画正在进行,立即停止手上的动画,执行新的命令

 

六 节点关系

6.1 原生 JS 中的 nodeType 属性

任何的 HTML 元素,都有nodeType属性,值有1~11,老师为大家精简到了5个:

1    元素节点
3文本节点
8注释节点
9document 节点
10DTD

 

 

 

 

 

6.2 原生 JS 中的节点关系  childNodes 

有兼容性问题,chrome, ie9, ie10... 高级浏览器会把空格换行等看成文本节点

ie 6, 7, 8 不会

document.getElementById(“box”).childNodes.length;  //高级浏览器 9,低级浏览器 4

怎么解决这个差异呢?

其它:

firstChild / lastChild

元素.parentNode

previousSibling / nextSibling

  

 

七 各种特效

 

转载于:https://www.cnblogs.com/Bijou/p/10207045.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/395553.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CentOS 7 firewalld使用简介

2019独角兽企业重金招聘Python工程师标准>>> Centos升级到7之后,发现无法使用iptables控制Linuxs的端口,google之后发现Centos 7使用firewalld代替了原来的iptables。下面记录如何使用firewalld开放Linux端口: 1.快速使用说明 开启…

一个备份sql server文件.bak还原成两个数据库

一直对这个概念很模糊,今天具体一点。 备份文件只要是正常的.bak文件就好。 数据库>还原数据库 直接填写还原之后的文件名就行。 用一份备份文件还原两个一样的库,只是名称不一样。 转载于:https://www.cnblogs.com/Ly426/p/10209825.html

linux服务器防病毒,Linux系统中你不需要防病毒?_服务器评论-中关村在线

误区4:Linux是无病毒。Linux的安全性这么好,这是否意味着Linux是无病毒吗?现实:Linux是非常安全,并不是没有针对Linux方面的病毒。有许多针对Linux的已知病毒。但是几乎所有的已知病毒对于Linux在本质上都是非破坏性的…

python面向对象-1方法、构造函数

类是指:描述一种事物的定义,是个抽象的概念 实例指:该种事物的一个具体的个体,是具体的东西 打个比方: “人”是一个类。“张三”是人类的一个具体例子 在编程时也是同样的道理,你先自己定义一个“类”&am…

bzoj3503: [Cqoi2014]和谐矩阵

高斯消元解异或方程组。学了bitset。对比如下 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; #define REP(i,s,t) for(int is;i<t;i) #define dwn(i,s,t) for(int is;i>t;i--) #define clr(…

sys模块

与python解释器交互的模块 sys.argv 命令行参数List&#xff0c;第一个元素是程序本身路径 sys.exit(n) 退出程序&#xff0c;正常退出时exit(0),错误退出sys.exit(1) sys.version 获取Python解释程序的版本信息 sys.path 返回模块的搜索路径…

Oracle中SQL语句学习五(统计分组语句group by和having)

oracle&#xff08;41&#xff09; 在 应用系统开发中&#xff0c;进行需要统计数据库中的数据&#xff0c;当执行数据统计时&#xff0c;需要将表中的数据进行分组显示&#xff0c;在统计分组中是通过group by子句、分组函数、having子句共同实现的。其中group by子句用于指定…

做开发十年,我总结出了这些开发经验

本文由云社区发表,原文转载地址:https://www.cnblogs.com/qcloud1001/p/10218876.html 在一线做了十年的开发&#xff0c;经历了网易、百度、腾讯研究院、MIG 等几个地方&#xff0c;陆续做过 3D 游戏、2D 页游、浏览器、移动端翻译 app 等。 积累了一些感悟。必然有依然幼稚的…

2016年4月 TIOBE 编程语言排行榜

4月头条: Visual Basic 正在渐行渐远 COBOL, BASIC 和 FORTRAN 很长一段时间作为主力开发语言被使用。有很多软件使用这些语言来编写&#xff0c;并且发展的不亦乐乎。然而经过多年的发展&#xff0c;COBOL和FORTRAN逐渐被抛弃&#xff0c;而得益于微软的存在&#xff0c;BASIC…

基于zbus的MySQL透明代理(100行)

项目地址 https://git.oschina.net/rushmore/zbus 我们上次讲到zbus网络通讯的核心API&#xff1a; Dispatcher -- 负责-NIO网络事件Selector引擎的管理&#xff0c;对Selector引擎负载均衡 IoAdaptor -- 网络事件的处理&#xff0c;服务器与客户端共用&#xff0c;负责读写&am…

linux path环境变量起什么作用,shell基础(5)PATH环境变量的作用和使用方法

释放双眼&#xff0c;带上耳机&#xff0c;听听看~&#xff01;关于PATH的作用PATH说简单点就是一个字符串变量&#xff0c;当输入命令的时候LINUX会去查找PATH里面记录的路径。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但其实ls这个命令根本不在这个两个目录下…

python3 自动打包部署war包

2019独角兽企业重金招聘Python工程师标准>>> 1 调用maven 命令打包 mvn -B -f D:/workspace/ksdcourse clean package 2 调用tomcat 部署war包 &#xff1b; 需要添加 CATALINA_HOME的环境变量 代码如下&#xff1a; #!/usr/bin/python3# -*- coding: utf-8 -*-impo…

day1作业二:多级菜单操作

作业二&#xff1a;多级菜单 &#xff08;1&#xff09;三级菜单 &#xff08;2&#xff09;可以次选择进入各子菜单 &#xff08;3&#xff09;所需新知识点&#xff1a;列表、字典 要求&#xff1a;输入back返回上一层&#xff0c;输入quit退出整个程序 思路&#xff1a; &am…

JDK源码分析(5)之 HashMap 相关

HashMap作为我们最常用的数据类型&#xff0c;当然有必要了解一下他内部是实现细节。相比于 JDK7 在JDK8 中引入了红黑树以及hash计算等方面的优化&#xff0c;使得 JDK8 中的HashMap效率要高于以往的所有版本&#xff0c;本文会详细介绍相关的优化&#xff0c;但是主要还是写 …

位运算-查找数组中唯一成对的数

基础实例一&#xff1a;使用位运算判断数的奇偶性 实例代码&#xff1a; public class Test {public static void main(String[] args) {System.out.println(isOdd(49));System.out.println(isOdd(50));}// 与运算public static boolean isOdd(int i){return (i & 1) ! 0;…

react-native-Cocoapods-Swift-Project

https://reactnative.cn/docs/integration-with-existing-apps/ 1、创建一个xcode工程&#xff0c;single View就行&#xff0c;项目语言选择swift&#xff0c;oc的直接生成就行不用这么麻烦。 2、把跟目录上创建 node的package.json,执行命令 npm init npm install react-nati…

第二阶段站立会议08

站立会议内容&#xff1a; 大家准备继续将代码进行融合&#xff0c;进行测试对一些功能进行优化。 1、会议照片&#xff1a; 2、任务展板&#xff1a; 3、燃尽图&#xff1a; 转载于:https://www.cnblogs.com/smcoder/p/7002539.html

git——学习笔记(三)分支管理

一、创建、合并分支 每次提交&#xff0c;git都往后走一格&#xff0c;串成一跳时间线&#xff0c;head指向的是分支&#xff0c;分支指向提交。master是主分支&#xff0c;dev是另一条分支&#xff0c;分支就像指针一样&#xff0c;合并、删除分支时&#xff0c;修改的都是指针…

阿里巴巴是如何打通 CMDB,实现就近访问的?

CMDB在企业中&#xff0c;一般用于存放与机器设备、应用、服务等相关的元数据。当企业的机器及应用达到一定规模后就需要这样一个系统来存储和管理它们的元数据。有一些广泛使用的属性&#xff0c;例如机器的IP、主机名、机房、应用、region等&#xff0c;这些数据一般会在机器…

[原创]K8_C段旁注工具6.0 新增SMB漏洞扫描

工具: K8_C段旁注工具6.0_0510[K.8]编译: 自己查壳组织: K8搞基大队[K8team]作者: K8拉登哥哥博客: http://qqhack8.blog.163.com发布: 2017/5/24 13:25:54简介: 图片: 功能: 更新历史:6.0 20170510[] C段SMB漏洞扫描(探测系统版本)[] 批量操作-文本比较提取新增内容[] 旁注查…