Python全栈开发,Day18

本章内容

  1. 选择器
  2. 事件
  3. 效果

 

前言

  jQuery是一个兼容多浏览器的JavaScript函数库。

  jQuery是一个轻量级的“写的少,做的多”的JavaScript库,是免费、开源的。

一、选择器

   jQuery选择器允许对HTML元素组或单个元素进行操作。说到选择器就得说说上一章的DOM了,因为呢,jQuery对象就是通过jQuery包装DOM对象产生的对象,它是jQuery独有的。所以看到选择器你会觉得似曾相识。jQuery对象是以$开头的。

 1 1.基本选择器
 2 
 3 $("#id")            //ID选择器
 4 $("div")            //元素选择器
 5 $(".classname")     //类选择器
 6 $(".classname,.classname1,#id1")     //组合选择器
 7 
 8 2.层次选择器
 9 
10 $("#id>.classname ")    //子元素选择器
11 $("#id .classname ")    //后代元素选择器
12 $("#id + .classname ")    //紧邻下一个元素选择器
13 $("#id ~ .classname ")    //兄弟元素选择器
14 
15 3.过滤选择器
16 
17 //标签过滤选择器
18 $("li:first")    //第一个li
19 $("li:last")     //最后一个li
20 $("li:even")     //挑选下标为偶数的li
21 $("li:odd")      //挑选下标为奇数的li
22 $("li:eq(4)")    //下标等于4的li
23 $("li:gt(2)")    //下标大于2的li
24 $("li:lt(2)")    //下标小于2的li
25 $("li:not(#runoob)") //挑选除 id="runoob" 以外的所有li
26 
27 //内容过滤选择器
28 $("div:contains('Runob')")    // 包含 Runob文本的元素
29 $("td:empty")                 //不包含子元素或者文本的空元素
30 $("div:has(selector)")        //含有选择器所匹配的元素
31 $("td:parent")                //含有子元素或者文本的元素
32 
33 //可见性过滤选择器
34 $("li:hidden")       //匹配所有不可见元素,或type为hidden的元素
35 $("li:visible")      //匹配所有可见元素
36 
37 //属性过滤选择器
38 $("div[id]")        //所有含有 id 属性的 div 元素
39 $("div[id='123']")        // id属性值为123的div 元素
40 $("div[id!='123']")        // id属性值不等于123的div 元素
41 $("div[id^='qq']")        // id属性值以qq开头的div 元素
42 $("div[id$='zz']")        // id属性值以zz结尾的div 元素
43 $("div[id*='bb']")        // id属性值包含bb的div 元素
44 $("input[id][name$='man']") //多属性选过滤,同时满足两个属性的条件的元素
45 
46 //状态过滤选择器
47 $("input:enabled")    // 匹配可用的 input
48 $("input:disabled")   // 匹配不可用的 input
49 $("input:checked")    // 匹配选中的 input
50 $("option:selected")  // 匹配选中的 option
51 
52 4.表单选择器
53 $(":input")      //匹配所有 input, textarea, select 和 button 元素
54 $(":text")       //所有的单行文本框,$(":text") 等价于$("[type=text]"),推荐使用$("input:text")效率更高,下同
55 $(":password")   //所有密码框
56 $(":radio")      //所有单选按钮
57 $(":checkbox")   //所有复选框
58 $(":submit")     //所有提交按钮
59 $(":reset")      //所有重置按钮
60 $(":button")     //所有button按钮
61 $(":file")       //所有文件域

更多jQuery选择器  -->

二、事件

  页面对不同访问者的响应叫做事件。事件处理程序指的是当HTML中发生某些事件时调用的方法。在事件中经常用术语“触发”,就像在页面上点击了一个按钮,则就会触发这个按钮去执行操作。

  常用的jQuery事件方法:

 实例就直接看代码了:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>jquery</title>
 6 </head>
 7 <body>
 8     <div style="background-color: aquamarine">不好意思,让我占个第一行</div>
 9     <p>我是p标签</p>
10     <b>我是b标签</b>
11     <h1>我是h1标签</h1>
12     <h2>我是h2标签</h2>
13     <div id="p1" style="color:olivedrab;">我的id是p1</div>
14     <div>--------我是切割线--------</div>
15     <div id="p2" style="color:olivedrab;">我的id是p2</div>
16     <div>--------我是切割线--------</div>
17     <div id="p3" style="color:olivedrab;">我的id是p3</div>
18     <div>--------我是切割线--------</div>
19     <input type="text" id="p4">
20     <input type="text" id="p5">
21     <script src="jquery-1.12.4.js"></script>
22     <script>
23         //允许我们在文档加载完成后执行函数
24         $(document).ready(function () {
25             //鼠标点击,触发click事件
26             $("p").click(function () {
27                 $(this).hide()
28             });
29             //鼠标双击,触发dblclick事件
30             $("b").dblclick(function () {
31                 $(this).hide()
32             });
33             //鼠标指针穿过元素时,触发mouseenter事件
34             $("#p1").mouseenter(function () {
35                 alert("你的鼠标移到这里啦。")
36             });
37             //鼠标指针离开元素时,触发mouseleave事件
38             $("#p2").mouseleave(function () {
39                 alert("再见,你的鼠标离开这里啦。")
40             });
41             //鼠标指针移动到元素上方并点击鼠标,触发mousedown事件
42             $("h2").mousedown(function () {
43                 alert("鼠标在该段落上按下!")
44             });
45             //鼠标指针移动到元素上方并松开鼠标,触发mouseup事件
46             $("h1").mouseup(function () {
47                 alert("鼠标在段落上松开!")
48             });
49             //鼠标移动到元素上时,触发指定的第一个函数(mouseenter),离开触发指定的第二个函数(mouseleave)
50             $("#p3").hover(
51                     function () {
52                         alert("你进入了p3");
53                     },
54                     function () {
55                         alert("再见,你离开了p3")
56                     }
57             );
58             //元素获得焦点,触发focus事件
59             //当通过鼠标点击选中元素或通过 tab 键定位到元素时,该元素就会获得焦点。
60             $("#p4").focus(function () {
61                 $("#p4").css("background-color", "#cccccc");
62             });
63             //元素失去焦点,触发blur事件
64             //当通过鼠标点击选中元素或通过 tab 键定位到元素时,该元素就会获得焦点。
65             $("#p5").blur(function () {
66                 $("#p5").css("background-color", "#cccccc");
67             });
68         });
69     </script>
70 </body>
71 </html>

三、效果

 1、隐藏和显示

  1.hide()和show()

1 $("#hide").click(function(){
2   $("p").hide();
3 });
4  
5 $("#show").click(function(){
6   $("p").show();
7 });

  功能:用来隐藏和显示HTML元素

  语法:$(selector).hide(speed,callback);  在这里speed参数可以规定隐藏的速度,并且可以取下值:“slow”、“fast”或毫秒,callback则是隐藏完成后执行的函数名称。show同样是这样的。

  2.toggle()

1 $("button").click(function(){
2   $("p").toggle();
3 });

  功能:显示被隐藏的元素,并隐藏已显示的元素;比如我们实现一个反选功能,用toggle就相当的方便了。

  语法:$(selector).toggle(speed,callback);  可选的两个参数为speed、callback同上。

 2、淡入和淡出

  jQuery Fading方法有

  1.fadeIn()

1 $("button").click(function(){
2   $("#div1").fadeIn();
3   $("#div2").fadeIn("slow");
4   $("#div3").fadeIn(3000);
5 });

 

  功能:用于淡入(显示)已隐藏的元素。

  语法:$(selector).fadeIn(speed,callback);  可选的两个参数为speed、callback同上。

  2.fadeOut()

1 $("button").click(function(){
2   $("#div1").fadeOut();
3   $("#div2").fadeOut("slow");
4   $("#div3").fadeOut(3000);
5 });

  功能:用于淡出(隐藏)可见元素。

  语法:$(selector).fadeOut(speed,callback);  可选的两个参数为speed、callback同上。

  3.fadeToggle()

1 $("button").click(function(){
2   $("#div1").fadeToggle();
3   $("#div2").fadeToggle("slow");
4   $("#div3").fadeToggle(3000);
5 });

  功能:在 fadeIn() 与 fadeOut() 方法之间进行切换。

  语法:$(selector).fadeToggle(speed,callback);  可选的两个参数为speed、callback同上。

  4.fandeTo()

  功能:允许渐变为给定的不透明度(值介于 0 与 1 之间)。

  语法:$(selector).fadeTo(speed,opacity,callback); 可选参数opacity的值介于0与1之间,speed、callback同上。

 

 3、滑动

  可以在元素上创建滑动效果

  1.slideDown()

1 $("#flip").click(function(){
2   $("#panel").slideDown();
3 });

  功能:用于向下滑动元素。

  语法:$(selector).slideDown(speed,callback);  可选参数同上。

  2.slideUp()

1 $("#flip").click(function(){
2   $("#panel").slideUp();
3 });

  功能:用于向上滑动元素。

  语法:$(selector).slideUp(speed,callback);  可选参数同上。

  3.slideToggle()

1 $("#flip").click(function(){
2   $("#panel").slideToggle();
3 });

  功能:在 slideDown() 与 slideUp() 方法之间进行切换。

  语法:$(selector).slideToggle(speed,callback);  可选参数同上。

 4、动画

  用于创建自定义动画

  语法:$(selector).animate({params),speed,callback);  必需的 params 参数定义形成动画的 CSS 属性,可选参数speed、callback同上。

  实例:

  把元素往右边移动250像素:

1 $("button").click(function(){
2   $("div").animate({left:'250px'});
3 });

  操作多个属性

1 $("button").click(function(){
2   $("div").animate({
3     left:'250px',
4     opacity:'0.5',
5     height:'150px',
6     '150px'
7   });
8 });

  使用相对值

1 $("button").click(function(){
2   $("div").animate({
3     left:'250px',
4     height:'+=150px',
5     '+=150px'
6   });
7 });

  使用预定义的值

1 $("button").click(function(){
2   $("div").animate({
3     height:'toggle'
4   });
5 });

  使用队列功能

1 $("button").click(function(){
2   var div=$("div");
3   div.animate({height:'300px',opacity:'0.4'},"slow");
4   div.animate({'300px',opacity:'0.8'},"slow");
5   div.animate({height:'100px',opacity:'0.4'},"slow");
6   div.animate({'100px',opacity:'0.8'},"slow");
7 });

 5、停止动画

  stop() 方法用于停止动画或效果,在它们完成之前。stop() 方法适用于所有 jQuery 效果函数,包括滑动、淡入淡出和自定义动画。

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js">
 6 </script>
 7 <script> 
 8 $(document).ready(function(){
 9   $("#flip").click(function(){
10     $("#panel").slideDown(5000);
11   });
12   $("#stop").click(function(){
13     $("#panel").stop();
14   });
15 });
16 </script>
17  
18 <style type="text/css"> 
19 #panel,#flip
20 {
21     padding:5px;
22     text-align:center;
23     background-color:#e5eecc;
24     border:solid 1px #c3c3c3;
25 }
26 #panel
27 {
28     padding:50px;
29     display:none;
30 }
31 </style>
32 </head>
33 <body>
34  
35 <button id="stop">停止滑动</button>
36 <div id="flip">点我向下滑动面板</div>
37 <div id="panel">Hello world!</div>
38 
39 </body>
40 </html>
一个实例

  语法:$(selector).stop(stopAll,goToEnd);

  可选的 stopAll 参数规定是否应该清除动画队列。默认是 false,即仅停止活动的动画,允许任何排入队列的动画向后执行。可选的 goToEnd 参数规定是否立即完成当前动画。默认是 false。

 6、Callback

  对于callback问题,即实例效果完全实现后回调函数

  以下实例在隐藏效果完全实现后回调函数:

1 $("button").click(function(){
2   $("p").hide("slow",function(){
3     alert("段落现在被隐藏了");
4   });
5 });

  以下实例没有回调函数,警告框会隐藏效果完成前弹出:

1 $("button").click(function(){
2   $("p").hide(1000);
3   alert("段落现在被隐藏了");
4 });

 7、链

  到现在为止,我们都是一次写一条jQuery语句,功能一个一个的定义。但是呢,有一种名为链接的技术,允许我们在相同的元素上运行多条jQuery命令,一条接着另一条,这样的话,浏览器就不必多次查找相同的元素。看以下实例:

1 $("#p1").css("color","red").slideUp(2000).slideDown(2000);

  根据需要来选择用那种方式。jQuery 语法不是很严格;您可以按照希望的格式来写,包含换行和缩进。因为jQuery 会抛掉多余的空格,并当成一行长代码来执行上面的代码行。

  1 <!DOCTYPE html>
  2 <html lang="en">
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>jquery</title>
  6     <style>
  7         #panel,#down,#up,#slidetoggle
  8         {
  9             padding:5px;
 10             text-align:center;
 11             background-color:#e5eecc;
 12             border:solid 1px #c3c3c3;
 13         }
 14         #panel
 15         {
 16             padding:50px;
 17             display:none;
 18         }
 19     </style>
 20 </head>
 21 <body>
 22 //隐藏/显示
 23     //默认隐藏可以display来进行
 24     <h1 id="hide" style="color:red;">我是hide</h1>
 25     <p>-------我是切割线-------</p>
 26     <h1 id="show" style="color:blue;">我是show</h1>
 27     <p>-------我是切割线-------</p>
 28     <h1 id="toggle" style="color:blue;">我是toggle</h1>
 29     <button id="button1">出来吧div</button>
 30 //淡入淡出
 31     <div id="div1" style="80px;height:80px;display:none;background-color:red;"></div><br>
 32     <div id="div2" style="80px;height:80px;display:none;background-color:green;"></div><br>
 33     <div id="div3" style="80px;height:80px;display:none;background-color:blue;"></div><br>
 34     <button id="button2">消失吧div</button>
 35     <div id="div4" style="80px;height:80px;display:none;background-color:red;"></div><br>
 36     <div id="div5" style="80px;height:80px;background-color:green;"></div><br>
 37     <div id="div6" style="80px;height:80px;display:none;background-color:blue;"></div><br>
 38     <button id="button3">该出来的不出来,不该出来的给我出来</button>
 39     <div id="div7" style="80px;height:80px;background-color:green;"></div><br>
 40     <button id="button4">透明吧,老铁</button>
 41 //滑动
 42     <div id="down">点我滑下面板</div>
 43     <div id="panel">Hello world!</div>
 44     <div id="up">点我拉起面板</div>
 45     <div id="slidetoggle">点我拉起或滑下面板</div>
 46 //动画
 47     //默认情况下,所有 HTML 元素都有一个静态位置,且无法移动。
 48     //如需对位置进行操作,要记得首先把元素的 CSS position 属性设置为 relative、fixed 或 absolute!
 49     <div id="animate1" style="background:#98bf21;height:100px;100px;position:absolute;"></div>
 50     <button id="button5">开始第一个动画</button>
 51     <button id="button6">开始第二个动画</button>
 52     <button id="button7">开始第三个动画</button>
 53     <button id="button8">开始第四个动画</button>
 54     <button id="button9">开始第五个动画</button>
 55     <script src="jquery-1.12.4.js"></script>
 56     <script>
 57 
 58 //隐藏/显示
 59         //hide()隐藏
 60         $("#hide").click(function(){
 61           $("#hide").hide();
 62         });
 63         //show()显示
 64         $("#show").click(function(){
 65           $("#show").show();
 66         });
 67         //toggle()显示被隐藏的元素,并隐藏已显示的元素
 68         $("#i1").click(function (){
 69           $("#i1").toggle();
 70         });
 71 //淡入淡出
 72         //fadeIn()淡入已隐藏的元素
 73         $("#button1").click(function () {
 74             $("#div1").fadeIn();
 75             $("#div2").fadeIn("slow");
 76             $("#div3").fadeIn(3000);
 77         });
 78         //fadeOut()淡出可见元素
 79         $("#button2").click(function () {
 80             $("#div1").fadeOut();
 81             $("#div2").fadeOut("slow");
 82             $("#div3").fadeOut(3000);
 83         });
 84         //如果元素已淡出,fadeToggle()会向元素添加淡入效果
 85         //如果元素已淡入,fadeToggle()会向元素添加淡出效果
 86         $("#button3").click(function () {
 87             $("#div4").fadeToggle();
 88             $("#div5").fadeToggle("slow");
 89             $("#div6").fadeToggle(3000);
 90         });
 91         //fadeTo()允许渐变为给定的不透明度(值介于0与1之间)
 92         $("#button4").click(function(){
 93             $("#div7").fadeTo("slow",0.15);
 94         });
 95 //滑动
 96         //slideDown()用于向下滑动元素
 97         $("#down").click(function(){
 98             $("#panel").slideDown("slow");
 99         });
100         //slideDown()用于向上滑动元素
101         $("#up").click(function(){
102             $("#panel").slideUp("slow");
103         });
104         //slideToggle()用于在 slideDown() 与 slideUp() 方法之间进行切换
105         $("#slidetoggle").click(function(){
106             $("#panel").slideToggle("slow");
107         });
108 //动画 animate()方法
109         //把元素向右移动250px
110         $("#button5").click(function(){
111             $("#animate1").animate({left:'250px'});
112         });
113         //操作多个属性
114         $("#button6").click(function(){
115              $("#animate1").animate({
116                 left:'250px',
117                 opacity:'0.5',
118                 height:'200px',
119                 '200px'
120              });
121         });
122         //使用相对值,需要在值前面加+=或-=
123         $("#button7").click(function(){
124              $("#animate1").animate({
125                 left:'250px',
126                 height:'+=150px',
127                 '+=150px'
128              });
129         });
130         //使用预定义的值
131         $("#button8").click(function(){
132              $("#animate1").animate({
133                 height:'toggle'
134              });
135         });
136         //使用队列功能
137         $("#button9").click(function(){
138             var div=$("#animate1");
139             div.animate({height:'300px',opacity:'0.4'},"slow");
140             div.animate({'300px',opacity:'0.8'},"slow");
141             div.animate({height:'100px',opacity:'0.4'},"slow");
142             div.animate({'100px',opacity:'0.8'},"slow");
143           });
144     </script>
145 </body>
146 </html>
隐藏到动画的所有效果

本章笔记还不完整,待更新。

 

 

 

 

 

注:本文仅为学习笔记、摘要。

详细来源http://www.runoob.com/jquery/jquery-tutorial.html

 

原文地址:https://www.cnblogs.com/lyonyang/p/6984881.html