jQuery(3)

元素的尺寸
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4   <meta charset="UTF-8">
 5   <title>14_元素的尺寸</title>
 6 </head>
 7 <style>
 8   div {
 9     width: 100px;
10     height: 150px;
11     background: red;
12     padding: 10px;
13     border: 10px #fbd850 solid;
14     margin: 10px;
15   }
16 </style>
17 </head>
18 
19 <body>
20 <div>div</div>
21 
22 <!--
23 1. 内容尺寸
24   height(): height
25   width(): width
26 2. 内部尺寸
27   innerHeight(): height+padding
28   innerWidth(): width+padding
29 3. 外部尺寸
30   outerHeight(false/true): height+padding+border  如果是true, 加上margin
31   outerWidth(false/true): width+padding+border 如果是true, 加上margin
32 -->
33 <script src="js/jquery-1.10.1.js" type="text/javascript"></script>
34 <script>
35   var $div = $('div')
36   // 1. 内容尺寸
37   console.log($div.width(), $div.height())  // 100 150
38   // 2. 内部尺寸
39   console.log($div.innerWidth(), $div.innerHeight()) //120 170
40   // 3. 外部尺寸
41   console.log($div.outerWidth(), $div.outerHeight()) //140 190
42   console.log($div.outerWidth(true), $div.outerHeight(true)) //160 210
43 
44 </script>
45 </body>
46 
47 </html>

 

筛选_过滤
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4   <meta charset="UTF-8">
 5   <title>15_筛选_过滤</title>
 6 </head>
 7 
 8 <body>
 9 <ul>
10   <li>AAAAA</li>
11   <li title="hello" class="box2">BBBBB</li>
12   <li class="box">CCCCC</li>
13   <li title="hello">DDDDDD</li>
14   <li title="two"><span>BBBBB</span></li>
15 </ul>
16 <li>eeeee</li>
17 <li>EEEEE</li>
18 <br>
19 
20 <!--
21 在jQuery对象中的元素对象数组中过滤出一部分元素来
22 1. first()
23 2. last()
24 3. eq(index|-index) 
25 4. filter(selector)  //过滤属性
26 5. not(selector)
27 6. has(selector)   //包含什么的元素
28 -->
29 
30 <script src="js/jquery-1.10.1.js" type="text/javascript"></script>
31 <script type="text/javascript">
32   /*
33    需求:
34    1. ul下li标签第一个
35    2. ul下li标签的最后一个
36    3. ul下li标签的第二个
37    4. ul下li标签中title属性为hello的
38    5. ul下li标签中title属性不为hello的
39    6. ul下li标签中有span子标签的
40    */
41   var $lis = $('ul>li')
42   //1. ul下li标签第一个
43   // $lis.first().css('background', 'red')  //$lis.first()是jq对象
44   // $lis[0].style.background = 'red'    //$lis[0]是js对象
45 
46   //2. ul下li标签的最后一个
47   // $lis.last().css('background', 'red')
48 
49   //3. ul下li标签的第二个
50   // $lis.eq(1).css('background', 'red')
51 
52   //4. ul下li标签中title属性为hello的
53   // $lis.filter('[title=hello]').css('background', 'red')
54 
55   //5. ul下li标签中title属性不为hello的
56   // $lis.not('[title=hello]').css('background', 'red')
57   // $lis.filter('[title!=hello]').filter('[title]').css('background', 'red')//两次过滤
58 
59   //6. ul下li标签中有span子标签的
60   $lis.has('span').css('background', 'red')
61 </script>
62 </body>
63 </html>

 

筛选_查找孩子-父母-兄弟标签
 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4   <meta charset="UTF-8">
 5   <title>16_筛选_查找孩子-父母-兄弟标签</title>
 6 </head>
 7 <body>
 8 <div id="div1" class="box" title="one">class为box的div1</div>
 9 <div id="div2" class="box">class为box的div2</div>
10 <div id="div3">div3</div>
11 <span class="box">class为box的span</span>
12 <br/>
13 <div>
14   <ul>
15     <span>span文本1</span>
16     <li>AAAAA</li>
17     <li title="hello" class="box2">BBBBB</li>
18     <li class="box" id='cc'>CCCCC</li>
19     <li title="hello">DDDDDD</li>
20     <li title="two"><span>span文本2</span></li>
21     <span>span文本3</span>
22   </ul>
23   <span>span文本444</span><br>
24   <li>eeeee</li>
25   <li>EEEEE</li>
26   <br>
27 </div>
28 
29 <!--
30 在已经匹配出的元素集合中根据选择器查找孩子/父母/兄弟标签
31 1. children(): 子标签中找
32 2. find() : 后代标签中找
33 3. parent() : 父标签
34 4. prevAll() : 前面所有的兄弟标签
35 5. nextAll() : 后面所有的兄弟标签
36 6. siblings() : 前后所有的兄弟标签
37 -->
38 <script src="js/jquery-1.10.1.js" type="text/javascript"></script>
39 <script type="text/javascript">
40   /*
41    需求:
42    1. ul标签的第2个span子标签
43    2. ul标签的第2个span后代标签
44    3. ul标签的父标签
45    4. id为cc的li标签的前面的所有li标签
46    5. id为cc的li标签的所有兄弟li标签
47    */
48   var $ul = $('ul')
49   //1. ul标签的第2个span子标签
50   //$ul.children('span:eq(1)').css('background', 'red')
51 
52   //2. ul标签的第2个span后代标签
53   // $ul.find('span:eq(1)').css('background', 'red')
54   // $ul.find('span').eq(1).css('background', 'red')
55 
56   //3. ul标签的父标签
57   // $ul.parent().css('background', 'red')
58 
59   //4. id为cc的li标签的前面的所有li标签
60   var $li = $('#cc')
61   // $li.prevAll('li').css('background', 'red')
62 
63   //5. id为cc的li标签的所有兄弟li标签
64   $li.siblings('li').css('background', 'red')
65 </script>
66 </body>
67 </html>

 

文档增删改

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>17_文档_增删改</title>
</head>
<style type="text/css">

</style>

<body>
<ul id="ul1">
    <li>AAAAA</li>

    <li title="hello">BBBBB</li>
    <li class="box">CCCCC</li>

    <li title="hello">DDDDDD</li>
    <li title="two">EEEEE</li>
    <li>FFFFF</li>
</ul>
<br>
<br>
<ul id="ul2">
    <li class="re">aaa</li>
    <li title="hello">bbb</li>
    <li class="box">ccc</li>
    <li title="hello">ddd</li>
    <li title="two">eee</li>
</ul>


<!--
1. 添加/替换元素
  * append(content)
    向当前匹配的所有元素内部的最后插入指定内容
  * prepend(content)
    向当前匹配的所有元素内部的最前面插入指定内容
  * before(content)
    将指定内容插入到当前所有匹配元素的前面
  * after(content)
    将指定内容插入到当前所有匹配元素的后面替换节点
  * replaceWith(content)
    用指定内容替换所有匹配的标签删除节点
2. 删除元素
  * empty()
    删除所有匹配元素的子元素
  * remove()
    删除所有匹配的元素
-->
<script type="text/javascript" src="js/jquery-1.10.1.js"></script>
<script type="text/javascript">
    /*
     需求:
     1. 向id为ul1的ul下添加一个span(最后)
     2. 向id为ul1的ul下添加一个span(最前)
     3. 在id为ul1的ul下的li(title为hello)的前面添加span
     4. 在id为ul1的ul下的li(title为hello)的后面添加span
     5. 将在id为ul2的ul下的li(title为hello)全部替换为p
     6. 移除id为ul2的ul下的所有li
     */
//    1. 向id为ul1的ul下添加一个span(最后)
    $('<span>我是appendTo新增的span</span><br>').appendTo('#ul1');
    $('#ul1').append('<span>我是append新增的span</span><br>');
//    <div class="wrap">
//        <div class="item">
//            <p></p>
//            <p></p>
//            <p></p>
//        </div>
//    </div>
//    <button></button>
//    $('<div class="item"></div>')
//        .append('<p></p>')
//        .append('<p></p>')
//        .append('<p></p>')
//        .appendTo('.wrap')


//    2. 向id为ul1的ul下添加一个span(最前)
    $('<span>我是prependTo新增的span</span><br>').prependTo('#ul1');
    $('#ul1').prepend('<span>我是prepend新增的span</span><br>')

//    3. 在id为ul1的ul下的li(title为hello)的前面添加span
    $('#ul1 li[title=hello]').before('<span>我是before新增的span</span>')
    
//    4. 在id为ul1的ul下的li(title为hello)的后面添加span
    $('#ul1 li[title=hello]').after('<span>我是after新增的span</span>')
    
//    5. 将在id为ul2的ul下的li(title为hello)全部替换为p
//    $('#ul2 li[title=hello]').replaceWith('<p>我是replaceWith替换的标签</p>');

//    6. 移除id为ul2的ul下的所有li
//    remove  用于删除节点,包括父节点
//    empty   是用于掏空节点   删除所有子元素 保留父元素
//    $('#ul2').children().remove();
    $('#ul2').empty();

</script>
</body>
</html>

 

事件绑定与解绑

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4   <meta charset="UTF-8">
  5   <title>18_事件绑定与解绑</title>
  6 </head>
  7 <style type="text/css">
  8   * {
  9     margin: 0px;
 10   }
 11 
 12   .out {
 13     position: absolute;
 14     width: 200px;
 15     height: 200px;
 16     top: 20px;
 17     left: 10px;
 18     background: blue;
 19   }
 20 
 21   .inner {
 22     position: absolute;
 23     width: 100px;
 24     height: 100px;
 25     top: 50px;
 26     background: red;
 27   }
 28 
 29   .divBtn {
 30     position: absolute;
 31     top: 250px;
 32   }
 33 
 34 </style>
 35 
 36 <body style="height: 2000px;">
 37 
 38 <div class="out">
 39   外部DIV
 40   <div class="inner">内部div</div>
 41 </div>
 42 
 43 <div class='divBtn'>
 44   <button id="btn1">取消绑定所有事件</button>
 45   <button id="btn2">取消绑定mouseover事件</button>
 46   <button id="btn3">测试事件坐标</button>
 47   <a href="http://www.baidu.com" id="test4">百度一下</a>
 48 </div>
 49 
 50 <!--
 51 1. 事件绑定(2种):
 52   * eventName(function(){})
 53     绑定对应事件名的监听,    例如:$('#div').click(function(){});
 54   * on(eventName, funcion(){})
 55     通用的绑定事件监听, 例如:$('#div').on('click', function(){})
 56   * 优缺点:
 57     eventName: 编码方便, 但只能加一个监听, 且有的事件监听不支持
 58     on: 编码不方便, 可以添加多个监听, 且更通用
 59 2. 事件解绑:
 60   * off(eventName)
 61 3. 事件的坐标
 62   * event.clientX, event.clientY  相对于视口的左上角
 63   * event.pageX, event.pageY  相对于页面的左上角
 64   * event.offsetX, event.offsetY 相对于事件元素左上角
 65 4. 事件相关处理
 66   * 停止事件冒泡 : event.stopPropagation()
 67   * 阻止事件默认行为 : event.preventDefault()
 68 -->
 69 <script src="js/jquery-1.10.1.js" type="text/javascript" charset="utf-8"></script>
 70 <script type="text/javascript">
 71   /*
 72    需求:
 73    1. 给.out绑定点击监听(用两种方法绑定)
 74    2. 给.inner绑定鼠标移入和移出的事件监听(用3种方法绑定)
 75    3. 点击btn1解除.inner上的所有事件监听
 76    4. 点击btn2解除.inner上的mouseover事件
 77    5. 点击btn3得到事件坐标
 78    6. 点击.inner区域, 外部点击监听不响应
 79    7. 点击链接, 如果当前时间是偶数不跳转
 80    */
 81   //1. 给.out绑定点击监听(用两种方法绑定)
 82   /*$('.out').click(function () {
 83    console.log('click out')
 84    })*/
 85   $('.out').on('click', function () {
 86     console.log('on click out')
 87   })
 88 
 89   //2. 给.inner绑定鼠标移入和移出的事件监听(用3种方法绑定)
 90   /*
 91    $('.inner')
 92    .mouseenter(function () { // 进入
 93     console.log('进入')
 94    })
 95    .mouseleave(function () { // 离开
 96    console.log('离开')
 97    })
 98    */
 99   /*
100    $('.inner')
101    .on('mouseenter', function () {
102    console.log('进入2')
103    })
104    .on('mouseleave', function () {
105    console.log('离开2')
106    })
107    */
108   $('.inner').hover(function () {
109     console.log('进入3')
110   }, function () {
111     console.log('离开3')
112   })
113 
114 
115   //3. 点击btn1解除.inner上的所有事件监听
116   $('#btn1').click(function () {
117     $('.inner').off()
118   })
119 
120   //4. 点击btn2解除.inner上的mouseenter事件
121   $('#btn2').click(function () {
122     $('.inner').off('mouseenter')
123   })
124 
125   //5. 点击btn3得到事件坐标
126   $('#btn3').click(function (event) { // event事件对象
127     console.log(event.offsetX, event.offsetY) // 原点为事件元素的左上角
128     console.log(event.clientX, event.clientY) // 原点为窗口的左上角
129     console.log(event.pageX, event.pageY) // 原点为页面的左上角
130   })
131 
132   //6. 点击.inner区域, 外部点击监听不响应
133   $('.inner').click(function (event) {
134     console.log('click inner')
135     //停止事件冒泡
136     event.stopPropagation()
137   })
138   
139   //7. 点击链接, 如果当前时间是偶数不跳转
140   $('#test4').click(function (event) {
141     if(Date.now()%2===0) {
142       event.preventDefault()
143     }
144   })
145 </script>
146 </body>
147 </html>

 

淡入淡出

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>21_淡入淡出</title>
 6 </head>
 7 <style type="text/css">
 8     * {
 9         margin: 0px;
10     }
11 
12     .div1 {
13         position: absolute;
14         width: 200px;
15         height: 200px;
16         top: 50px;
17         left: 10px;
18         background: red;
19     }
20 </style>
21 
22 <body>
23 <button id="btn1">慢慢淡出</button>
24 <button id="btn2">慢慢淡入</button>
25 <button id="btn3">淡出/淡入切换</button>
26 
27 <div class="div1">
28 </div>
29 
30 <!--
31 淡入淡出: 不断改变元素的透明度来实现的
32 1. fadeIn(): 带动画的显示
33 2. fadeOut(): 带动画隐藏
34 3. fadeToggle(): 带动画切换显示/隐藏
35 -->
36 <script type="text/javascript" src="js/jquery-1.10.1.js"></script>
37 <script type="text/javascript">
38     $('#btn1').click(function () {
39       $('.div1').fadeOut(2000);
40     });
41     $('#btn2').click(function () {
42       $('.div1').fadeIn(2000);
43     });
44     $('#btn3').click(function () {
45       $('.div1').fadeToggle(1000);
46     })
47 </script>
48 </body>
49 </html>

 

滑动动画

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>22_滑动</title>
 6 </head>
 7 <style type="text/css">
 8     * {
 9         margin: 0px;
10     }
11 
12     .div1 {
13         position: absolute;
14         width: 200px;
15         height: 200px;
16         top: 50px;
17         left: 10px;
18         background: red;
19     }
20 </style>
21 <body>
22 <button id="btn1">慢慢收缩</button>
23 <button id="btn2">慢慢展开</button>
24 <button id="btn3">收缩/展开切换</button>
25 
26 <div class="div1">
27 </div>
28 
29 <!--
30 滑动动画   高度慢慢变化
31 1. slideDown(): 带动画的展开
32 2. slideUp(): 带动画的收缩
33 3. slideToggle(): 带动画的切换展开/收缩
34 -->
35 <script type="text/javascript" src="js/jquery-1.10.1.js"></script>
36 <script type="text/javascript">
37     $('#btn1').click(function () {
38       $('.div1').slideUp(10000);
39     });
40     $('#btn2').click(function () {
41       $('.div1').slideDown(2000)
42     });
43     $('#btn3').click(function () {
44       $('.div1').slideToggle(2000)
45     })
46 </script>
47 </body>
48 </html>

 

显示与影藏动画

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>23_显示与隐藏</title>
 6 </head>
 7 <style type="text/css">
 8     * {
 9         margin: 0px;
10     }
11 
12     .div1 {
13         position: absolute;
14         width: 200px;
15         height: 200px;
16         top: 50px;
17         left: 10px;
18         background: red;
19         display: none;
20     }
21 </style>
22 <body>
23 <button id="btn1">瞬间显示</button>
24 <button id="btn2">慢慢显示</button>
25 <button id="btn3">慢慢隐藏</button>
26 <button id="btn4">显示隐藏切换</button>
27 
28 <div class="div1">
29 </div>
30 
31 <!--
32 显示隐藏,默认没有动画   , 高度和宽度,opcity慢慢变化
33 1. show(): (不)带动画的显示
34 2. hide(): (不)带动画的隐藏
35 3. toggle(): (不)带动画的切换显示/隐藏
36 -->
37 <script type="text/javascript" src="js/jquery-1.10.1.js"></script>
38 <script type="text/javascript">
39     // show和hide方法 如果不传递时间  默认是没有任何过渡效果的
40     $('#btn1').click(function () {
41         $('.div1').show();
42     });
43     $('#btn2').click(function () {
44         $('.div1').show(2000)
45     });
46     $('#btn3').click(function () {
47         $('.div1').hide(2000);
48     });
49     $('#btn4').click(function () {
50         $('.div1').toggle(1000);
51     })
52 
53 </script>
54 </body>
55 </html>

 

animate()自定义动画

  1 <!DOCTYPE html>
  2 <html>
  3 <head>
  4     <meta charset="UTF-8">
  5     <title>24_自定义动画</title>
  6     <style type="text/css">
  7         * {
  8             margin: 0px;
  9         }
 10 
 11         .div1 {
 12             position: absolute;
 13             width: 100px;
 14             height: 100px;
 15             top: 50px;
 16             left: 300px;
 17             background: red;
 18             color: #fff;
 19         }
 20     </style>
 21 </head>
 22 <body>
 23 <button id="btn1">逐渐扩大</button>
 24 <button id="btn2">向右移动</button>
 25 <button id="btn3">向左移动</button>
 26 <button id="btn4">停止动画</button>
 27 
 28 <div class="div1">
 29     爱在西元前,学在尚硅谷
 30 </div>
 31 <p>立即停止动画 直接到当前动画结束位置 不清空队列</p>
 32 <!--
 33 jQuery动画本质 : 在指定时间内不断改变元素样式值来实现的
 34 1. animate(): 自定义动画效果的动画
 35 2. stop(): 停止动画
 36 
 37 -->
 38 <script type="text/javascript" src="js/jquery-1.10.1.js"></script>
 39 <script type="text/javascript">
 40     /*
 41    需求:
 42    1.逐渐扩大
 43      1.宽度扩大
 44      2.宽度和高度扩大
 45      3.先宽度扩大后高度扩大
 46    2.向右移动
 47      1.向右移动 固定的200px
 48      2.基于当前位置向右移动 200px
 49    3.向左移动
 50      1.向右移动 固定的200px
 51      2.基于当前位置向右移动 200px
 52    4.停止动画
 53      1.停止所有的动画
 54      2.停止当前动画,直接开始下一个动画
 55      3.停止并结束当前动画,开始下一个动画
 56    */
 57 //    1.逐渐扩大
 58 //       1.宽度扩大
 59 //       2.宽度和高度扩大
 60 //       3.先宽度扩大后高度扩大
 61 //animate 自定义动画方法 两个参数  参数1是一个对象 设置要过渡的样式  参数2  过度时间 单位毫秒
 62     $('#btn1').click(function () {
 63         $('.div1').animate({  //先宽度变化后高度变化
 64             'width':'300px'
 65         },1000).animate({
 66             'height':'300px'
 67         },1000)
 68     });
 69     
 70     $('#btn1').click(function () {
 71         $('.div1').animate({   //宽高一起变化
 72             'width':'300px',
 73             'height':'300px'
 74         },1000)
 75     });
 76 //    2.向右移动
 77 //       1.向右移动 固定的200px
 78 //       2.基于当前位置向右移动 200px
 79     $('#btn2').click(function () {
 80       $('.div1').stop(false, true).animate({  //多次点击,立即停止上一次动画 直接到当前动画结束的位置 ,然后进行下一次的动画
 81           'left':'+=300'
 82       },3000)
 83     })
 84     
 85     // $('#btn2').click(function () {
 86     //   $('.div1').animate({   //多次点击,上一次的动画没有立刻停止,当动画执行完后,然后进行下一次的动画
 87     //       'left':'+=300'
 88     //   },3000)
 89     // })
 90 //       3.向左移动
 91 //    1.向右移动 固定的200px
 92 //    2.基于当前位置向右移动 200px
 93     $('#btn3').click(function () {
 94         $('.div1').stop().animate({
 95             'left':'-=300'
 96         },3000)
 97     })
 98 //    停止动画
 99     $('#btn4').click(function () {
100 //      参数1: 是否清空动画队列    第二个参数:当前动画是否执行完整
101 //      $('.div1').stop(false,false);//默认状态  立即停止当前动画 在当前位置执行下一个动画 不清空动画队列
102 //      $('.div1').stop(true,false);//立即停止当前动画 清空动画队列   之后的动画也不执行了
103 //      $('.div1').stop(true,true);//立即停止动画 直接到当前动画结束的位置  清空动画队列
104       // $('.div1').stop(false,true);//立即停止动画 直接到当前动画结束位置 不清空队列
105 
106     })
107 </script>
108 </body>
109 </html>

 

 

posted @ 2020-05-21 00:15  全情海洋  阅读(485)  评论(0编辑  收藏  举报