从零开始学_javascript_系列——jquery(基础,选择器,触发条件,动画,回调函数)

qq20004604      2022-02-16     662

关键词:

jQuery语法

 

1)引用jquery文件及下载库:

http://jquery.com/download/

下载

Download the compressed, production jQuery 2.2.2

这个是用户版的,已经被精简和压缩。

然后使用

<script src="jquery.js"></script>

来启动这个库文件,记得将下载的文件重命名为jquery.js

也可以使用谷歌和微软的CDN,不过这里略。

 

2jQuery语法

$ (selector).action()

其中$是必须的,表示使用jQuery语法;

selector表示你要对哪个进行操作;

action()表示进行的操作;

例如:$(“div”).hide() 其表示对所有div标签包含的内容进行隐藏,如果是<”p”>则表示对p标签包含的东西进行隐藏。

其他:

$(this) 表示对当前HTML元素进行操作

$(“#abc”) 表示对idabc的元素进行操作

$(“.abc”) 表示对class=”abc”的进行操作

 

 

3$(document).ready

这个存在的意义在于,只有当文档加载完毕(不确定是指所有文档,还是指使用的文档的那一部分),才能运行jQuery代码

 

 

4)选择器

$(“p”) 选择元素为<p>

$(“p.abc”) 选择class=”abc”的<p>元素

$(“p#abc”) 选择id=”abc”的<p>元素

 

$(“[href]”) 选择所有带有href属性的元素

$(“[href=’#’]”) 选择所有带href值等于“#”的元素

$(“[href!=’#’]”) 选择所有带href值不等于“#”的元素

$(“[href$=’.jpg’]”) 选择所有带href,末尾以.jpg结尾的元素

more

语法

描述

$(this)

当前 HTML 元素

$("p")

所有 <p> 元素

$("p.intro")

所有 class="intro" <p> 元素

$(".intro")

所有 class="intro" 的元素

$("#intro")

id="intro" 的元素

$("ul li:first")

每个 <ul> 的第一个 <li> 元素

$("[href$=‘.jpg‘]")

所有带有以 ".jpg" 结尾的属性值的 href 属性

$("div#intro .head")

id="intro" <div> 元素中的所有 class="head" 的元素

 

 

 

5)事件触发条件

ready是完成后触发,一般用于文档。$(document).ready(执行的命令)

click是点击后触发,一般用于按钮,也可以用于点击文档某区域。$(selector).click(执行的命令)

dclick是双击后触发。$(selector).dclick(执行的命令);

focus是元素获得焦点时触发的事件;

mouseover是鼠标悬停后触发的事件;

更多事件触发参考:

http://www.w3school.com.cn/jquery/jquery_ref_events.asp

 

 

6)名称冲突

例如jQuery和某个库名称冲突了(例如同样适用$符号作为开始),那么使用这个命令;

var jq=jQuery.noConflict(),帮助您使用自己的名称(比如 jq)来代替 $ 符号。

 

 

7)解释

$(document).ready(function(){

  $(".ex .hide").click(function(){

    $(this).parents(".ex").hide("slow");

  });

});

第一行是,当文件准备好了,执行函数,函数内容是后面的:

第二行是,class=”ex”的元素中的class=”hide”元素,点击后触发函数,函数内容为第三行;

第三行是,当前元素(this)的所有祖先元素(parents,一直到根元素html为止)中class=”ex”的元素,被隐藏(hide),速度为缓慢(slow

疑问:

当有两个同样的东西时,为什么只隐藏自己当前这个,不隐藏另外一个?

推测是因为只遍历其祖先,不包含自己(且祖先中符合class=ex要求的)

 

 

8)隐藏和显示

隐藏是hide(),而显示对应的是show()

只要将隐藏的hide()改为显示的show()即可。

 

还可以规定速率:

速率有三种,slow(慢),fast(快),数字(毫秒)。

例如hide(“slow”);   show(“fast”);    hide(2000);

需要注意的是:无参数为瞬间完成,fast为快(但比瞬间慢),slow为慢,数字无需加引号。

 

另有toggle,用法同showhide,效果是,如果是隐藏,点击后显示,如果是显示,点击后隐藏。也可以加时间和速度参数。

问题:假如多次点击,他会执行完每一次的行为,而不是只执行最近一次

 

 

9)淡入和淡出

注意大写,对大小写是敏感的。

fadeIn(); //淡入(显示)

fadeOut(); //淡出(隐藏)

fadeToggle(); //类似toggle,如果隐藏则显示,如果显示则隐藏

fadeTo(速度, 透明度0~1, 返回函数); //可以调整不透明度,注意,不能大于1

 

如:

$("#img_1st").fadeTo(1000,0.3);

1000ms的速度,将id=”img_1st”的东西设置为透明度30%

 

注:

假如有多个淡入同时执行,则分别执行自己的,而不是逐个执行。除非有设置设置其执行顺序。

 

更多特效参考;

http://www.w3school.com.cn/jquery/jquery_ref_effects.asp

 

 

10)滑动

说明:非隐藏的情况下,滑动后就是隐藏了,隐藏的情况下,相反的滑动就是显示。

向上滑动:slideUp();

向下滑动:slideDown();

切换滑动(先向上,再点击则向下):slideToggle()

其他效果:

http://www.w3school.com.cn/jquery/jquery_ref_effects.asp

 

 

 

11)显示

display:none;

cssstyle设置,这种设置为初始不显示。

 

 

12)动画

$(selector).animate({params},speed,callback);

第一个是必须是,表示形成动画的CSS属性,简单的来说,例如初始字号大小为10px,然后这里填写50px,那么字体就会自动变为50px(这个变化的过程就是动画)

 

注意:

①这个可以操纵块,但是似乎是不能操作<p>标签。

②可以操纵CSS属性;

③移动位置的话,需要在style里这么设置:position:fixed

 

一些使用:

$(document).ready(function(){

  $("#b_3rd").click(function(){

    $("#a_3rd").animate(

    {left:‘550px‘, //左边的位置变为550px

     width:‘100px‘, //宽度变为100px

     top:‘-=200px‘, //向上的位置减少200px

     fontSize:‘50‘, //设置字体大小(注意没有-),并且S大写

     });

  });

});

并且由于top使用的是相对位置,因此每次点击top,都会移动位置

还可以设置为属性,例如:

width:’toggle’ //宽度形式的隐藏和显示切换

hide隐藏show显示。

不过貌似不能淡入淡出和改变透明度,是因为淡入淡出本身就是动画么?

 

队列:

$(document).ready(function(){

  $("#b_3rd").click(function(){

    $("#a_3rd").animate({left:‘550px‘}); //左边的位置变为550px

    $("#a_3rd").animate({width:‘100px‘});//宽度变为100px

     $("#a_3rd").animate({top:‘-=200px‘});//向上的位置减少200px

      $("#a_3rd").animate({fontSize:‘50‘});//设置字体大小(注意没有-),并且S大写

  });

});

这种写法就是让其按顺序执行先移动位置,然后宽度变化,然后往上移动,再字体变大

 

13)停止动画

语法:

$(selector).stop(stopAll,goToEnd);

 

假如有动画队列1234,正在执行1

默认无参数是1停止,下来执行234

第一个参数存在表示1234都停止;

第二个参数表示1停止,但是立刻出结果

 

参数用truefalse来表示。

false, false表示1停止,执行234

false, true表示直接完成1,然后执行234

true, false表示1停止,234取消;

true,true 表示1直接出结果,然后其他停止;

 

如代码:

<div style="position:fixed" id="a_3rd">

<p>用于测试动画的文字</p>

</div>

<div>

<p style="text-align:center">

        <button id="b_3rd" align="center">点击后左面的文字会移动</button>

<button id="b_4th" align="center">点击停止旁边按钮的动画</button>

</p>

</div>

 

以下是对其进行操作:

$(document).ready(function(){

  $("#b_3rd").click(function(){

    $("#a_3rd").animate({left:‘550px‘},2000); //左边的位置变为550px

    $("#a_3rd").animate({width:‘100px‘},2000);//宽度变为100px

     $("#a_3rd").animate({top:‘-=200px‘},2000);//向上的位置减少200px

      $("#a_3rd").animate({fontSize:‘50‘},2000);//设置字体大小(注意没有-),并且S大写

  });

  $("#b_4th").click(function(){

   $("#a_3rd").stop(true); //停止其的一切动画队列

  });

});

 

 

 

14CallBack函数

称为回调函数,

其作用是,当前动画执行完100%后,执行该函数。

 

可以理解为,当某条件满足之后,执行该函数。

 

 

15AJAX方法(异步请求)

具体来说,是load()方法,语法是:

$(selector).load(URL,data,callback);

 

例如读取某个链接或者本地文件:

  $("#a_3rd").load("a.txt"); //这是标签为#a_3rd的读取文本文档a.txt

 

URL是希望加载的URL(链接);

data参数规定与请求一同发送的查询字符串键/值对集合(不懂,感觉是说这个是查询的时候顺便发个信息给对方);

callback是结束请求后执行的函数;

 

可以在URL里面加入选择器(例如#是选择id的,.是选择class的),来选择某一部分的内容(例如js文件的某个标签的)。

如:

load(‘/example/jquery/demo_test.txt #p1‘) //读取id=”p1”的标签内的

也可以把#p1改为h2,读取h2标签内的

 

load的返回值(注意大小写):

responseTxt 包含调用成功时的结果内容

statusTxt 包含返回状态,如果成功是success,如果失败是error

xhr 包含XMLHttpRequest对象(不懂)

 

 

16getpost——两种http请求方法

get——从指定的资源请求数据;

post——向指定的资源提交要被处理的数据;

 

GET方法:

查询字符串(名称/值 对)是在GET请求的URL中发送的;

GET请求可被缓存;

GET请求保留在浏览器历史记录中;

GET请求可被收藏为书签;

GET请求不应在处理敏感数据时使用;

⑤有长度限制;

⑥只应当用于取回数据;

 

POST方法:

①不会被缓存;

②不会被保存在浏览器记录中;

③不能被收藏为书签;

④对数据长度没有要求;

 

GET

POST

后退按钮/刷新

无害

数据会被重新提交(浏览器应该告知用户数据会被重新提交)。

书签

可收藏为书签

不可收藏为书签

缓存

能被缓存

不能缓存

编码类型

application/x-www-form-urlencoded

application/x-www-form-urlencoded multipart/form-data。为二进制数据使用多重编码。

历史

参数保留在浏览器历史中。

参数不会保存在浏览器历史中。

对数据长度的限制

是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。

无限制。

对数据类型的限制

只允许 ASCII 字符。

没有限制。也允许二进制数据。

安全性

POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。

在发送密码或其他敏感信息时绝不要使用 GET

POST GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。

可见性

数据在 URL 中对所有人都是可见的。

数据不会显示在 URL 中。

 

 

GET语法:

$.get(URL,callback);

 

 

URL是必须有的,表示链接;

callback请求成功 后执行的回调函数;

 

 

POST语法:

$.post(URL,data,callback);

 

data是连通请求发送的数据。

 

 

以下是收集的资料:

1GET用于信息获取,而且应该是安全的和幂等的。

“安全”大概意思是:

①不安全的信息(敏感的信息)不应该由GET获取;

GET主要用于获取信息,而非修改信息;

GET请求一般不应产生副作用;

 

“幂等”大概意思是:

①对同一个URL的多次请求的结果是相同的。

例如想要获得一个信息,多次请求,应该总能获得这个信息(而非突然变为另外一个信息);

 

GET请求的数据会附在URL之后(把数据放在HTTP协议头中),以“?”分割URL和传输数据,参数之间以“&”相连,如:

login.action?name=hyddd&password=idontknow&%E4%BD%A0%E5%A5%BD

如果数据是英文字母/数字,则原样发送;

如果是空格,则转换为+

如果是中文/其他字符,则把字符串用BASE64加密,得出%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII

 

 

 

2POST表示可能改变服务器上的资源请求

①例如对某论坛的帖子进行回帖,服务器上的该贴多了一个回帖。因此应该通过POST来实现;

 

POST把提交的数据放置在HTTP包的包体之中。

 

3)因此,POST的安全性(关于丢失敏感信息)比GET高,传输的数据更多一些,但是更复杂一点(因为data属性,要发一个表单)。

 

 

 

 

2017从零开始学可视化数据分析师就业课程_数据分析师课程

2017从零开始学可视化数据分析师就业课程学习地址:http://www.xuetuwuyou.com/course/182课程出自学途无忧网:http://www.xuetuwuyou.com本课程由风舞烟老师团队出品。分9个课程,26章,共计324课时! 第一阶段、数据分析理论工具基础篇... 查看详情

从零开始学架构:开篇-文章大纲

...架构系列,开始《一步一步学架构系列》(目前改名为:从零开始学架构系列)3)个人感悟:1、做技术就是做架构;2、做工作就是做管理;这两句不详细解释,大家慢慢品味。  & 查看详情

[从零开始学fpga编程-4]:快速入门篇-常见可编程器件promplapalgalcpldfpga

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:https://blog.csdn.net/HiWangWenBing/article/details/124721279目录第1章什么是可编程器件1.1 逻辑器件分类 查看详情

睡前一小时数学系列之从零开始的快速乘法。

睡前一小时数学系列之从零开始的快速乘法。当我们遇到大数相乘的时候情不自禁可以想到高精度。但是如果遇到形如a*b%c的运算的时候。数也就是longlong级别(2^61-1)但是没有办法的是这样数如果相乘会超longlong级,再一模,hhhh肯... 查看详情

从零开始学java(异常)

_异常  异常机制已经成为判断一门编程语言是否成熟的标准,除了传统的像C语言没有提供异常机制之外,目前主流的编程语言中如;JavaC#RubyPython都是提供了比较完善的异常处理机制。 java的异常处理机制主要依赖于try、c... 查看详情

数据导入整数从零开始

】数据导入整数从零开始【英文标题】:Dataimportintegerstartwithzero【发布时间】:2019-07-1109:21:09【问题描述】:我是第一次使用clickhouse,当我像这样进行导入时:cat/home/data/_XDR_IMPORT_1001_20001010_000001_.tsv|clickhouse-client--password=123--quer... 查看详情

从零开始学kotlin-操作符

从零开始学Kotlin基础篇系列文章冒号操作符":"和"::":操作符用来定义变量、类的继承等varname:String//定义变量classMainActivity:AppCompatActivity()//继承类::可以用来得到类的Class对象startActivity(Intent([email protected],SecondActivity::class.java))// 查看详情

从零开始学kotlin-使用接口

从零开始学Kotlin基础篇系列文章定义接口使用关键字interface定义接口interfaceInterfaceDemo7{}类或对象可以实现一个或者多个接口classdemo7:InterfaceDemo7{}classdemo:InterfaceDemo71,InterfaceDemo72{}接口中定义属性接口中的属性只能是抽象的,不允... 查看详情

从零开始学kotlin-控制语句

从零开始学Kotlin基础篇系列文章条件控制-ifvara=10varb=20if(a>b)print(a)if(a>b){print(a)}else{print(b)}valmax=if(a>b)aelsebif(ain1..10){print("a在1到10区间内")}条件控制-whenvalx=3when(x){1->print("x是1")2->print(" 查看详情

从零开始学kotlin-类和对象

从零开始学Kotlin基础篇系列文章定义一个类定义一个类,使用关键字class声明,后面跟类名(不使用new)classdemo5{//定义一个类,使用关键字class声明,后面跟类名funtest(){//类中定义方法}classempty//定义一个空类}定义类的属性类的... 查看详情

从零开始学kotlin-枚举

从零开始学Kotlin基础篇系列文章枚举的定义一个类的对象是有限且固定的,这种实例有限且固定的类称为枚举类;枚举常量用逗号分隔,每个枚举常量都是一个对象;enumclassEnumDemo9{RED,BLUE,BLACK,WHITE}枚举初始化每一个枚举都是枚举类... 查看详情

[从零开始学习fpga编程-6]:快速入门篇-国内外fpga主要厂家及其主要产品系列开发工具

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客本文网址:https://blog.csdn.net/HiWangWenBing/article/details/124799385目录前言:第1章FPGA主要国外厂家 查看详情

javascript系列----面向对象的javascript

出处:http://www.cnblogs.com/renlong0602/p/4387588.html本文中心:  这篇文章比较难懂,所以读起来比较晦涩。所以,我简单列一下提纲: 在第一部分,从函数原型开始谈起,目的是想搞明白,这个属性是什么,为什么存在,... 查看详情

从零开始学习mysql系列--索引视图导入和导出

前言上篇文章我们学习了数据库和数据表操作语句,今天我们学习下数据库索引,视图,导入和导出的知识。作为基础篇,不会涉及到关于索引和视图的高级应用和核心概念,但是基本操作大家会了解,尤其是关于索引的内容,... 查看详情

从零开始学web之css3边框图片,过渡

大家好,这里是「从零开始学Web系列教程」,并在下列地址同步更新......github:https://github.com/Daotin/Web微信公众号:Web前端之巅博客园:http://www.cnblogs.com/lvonve/CSDN:https://blog.csdn.net/lvonve/在这里我会从Web前端零基础开始,一步步... 查看详情

从零开始学mysql--数据库和数据表操作

阅读本文大概需要7 分钟前言上篇文章我们学习了SELECT语句,今天我们学习下核心的内容,学习并实践如何对数据库表和表中的内容做修改,删除,重命名等操作。(想看看周末还有多少爱学习的小伙伴,你们在哪里呀,O(∩... 查看详情

从零开始学csrf

为什么要拿CSRF来当“攻击手法系列”的开头篇呢?因为CSRF/XSRF我个人喜爱他的程度已经超过XSS了。如果说XSS是一个老虎,那么CSRF就是隐藏在暗处的蛇。相信现在很多人不明白CSRF是怎么运作,他和XSS的不同是在哪里。我这里就逐... 查看详情

从零开始实现一个深度学习框架|激活函数,损失函数与卷积层(代码片段)

往期回顾super(Sigmoid,self).__init__()x=/(+np.exp(-x))xp=self.forward(self.storage[gradient=p*(-p)accumulated_gradient*gradientsuper(Tanh,self).__init__()x=/(+np.exp(*x))-xp=self.forward(self.storage[grad 查看详情