2023.3.2 JQuery CSS 样式操作与jQuery 动画

CSS 样式操作

  • addClass() 添加样式

  • removeClass() 删除样式

  • toggleClass() 有就删除,没有就添加样式。

  • offset() 获取和设置元素的坐标。

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2 <html>
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5 <title>Insert title here</title>
  6 <style type="text/css">
  7     
  8     div{
  9         width:100px;
 10         height:260px;
 11     }
 12     
 13     div.border{
 14         border: 2px white solid;
 15     }
 16  17     /*div.redDiv{}   div为限制  .redDiv为class选择器   红色背景*/
 18     div.redDiv{
 19         background-color: red;
 20     }
 21     /*蓝色边框*/
 22     div.blackDiv{
 23         border: 5px blue solid;
 24     }
 25 </style>
 26  27 <script type="text/javascript" src="script/jquery-1.7.2.js"></script>
 28 <script type="text/javascript">
 29  30     $(function(){
 31         /*
 32         CSS
 33         css(name|pro|[,val|fn])       读写匹配元素的样式属性。
 34                                         a.css('color')取出a元素的color
 35                                         a.css('color',"red")设置a元素的color为red
 36         CSS 类
 37         addClass(class|fn)          为元素添加一个class值;<div class="mini big">
 38         removeClass([class|fn])     删除元素的class值;传递一个具体的class值,就会删除具体的某个class
 39                                     a.removeClass():移除所有的class值
 40         **/
 41         var $divEle = $('div:first');
 42         
 43         $('#btn01').click(function(){
 44             //addClass() - 向被选元素添加一个或多个类
 45             $divEle.addClass("redDiv blackDiv"); //添加了两个类选择器的样式
 46         });
 47         
 48         $('#btn02').click(function(){
 49             //removeClass() - 从被选元素删除一个或多个类 
 50             $divEle.removeClass("redDiv");//$divEle.removeClass();这个是全部删除
 51         });
 52  53         
 54         $('#btn03').click(function(){
 55             //toggleClass() - 对被选元素进行添加/删除类的切换操作 
 56             //如果具有该类(样式)那么删除,如果没有那么添加
 57             $divEle.toggleClass("redDiv");
 58         });
 59         
 60         $('#btn04').click(function(){
 61             //offset() - 返回第一个匹配元素相对于文档的位置。 按照当前页面大小计算,缩放会改变值
 62             var os = $divEle.offset();
 63             //注意通过offset获取到的是一个对象,这个对象有两个属性top表示顶边距,left表示左边距
 64             alert("顶边距:"+os.top+" 左边距:"+os.left);
 65             
 66             //调用offset设置元素位置时,也需要传递一个js对象,对象有两个属性top和left
 67             //offset({ top: 10, left: 30 });
 68              $divEle.offset({
 69                  top:50,
 70                  left:60
 71              }); 
 72         });
 73         
 74     })
 75 </script>
 76 </head>
 77 <body>
 78  79     <table align="center">
 80         <tr>
 81  82             <td>
 83                 <div class="border">
 84                 </div>
 85             </td>
 86             
 87             <td>
 88                 <div class="btn">
 89                     <input type="button" value="addClass()" id="btn01"/>
 90                     <input type="button" value="removeClass()" id="btn02"/>
 91                     <input type="button" value="toggleClass()" id="btn03"/>
 92                     <input type="button" value="offset()" id="btn04"/>
 93 </div>
 94 </td>
 95 </tr>
 96 </table>
 97 <br /> <br />
 98 <br /> <br />
 99 </body>
100 </html>

jQuery 动画

基本动画

  • show() 将隐藏的元素显示

  • hide() 将可见的元素隐藏

  • toggle() 可见就隐藏,不可见就显示。

淡入淡出动画

  • fadeIn() 淡入(慢慢可见)

  • fadeOut() 淡出(慢慢消失)

  • fadeTo() 在指定时长内慢慢的将透明度修改到指定的值。0 透明,1 完成可见,0.5 半透明

  • fadeToggle() 淡入/淡出 切换

以上动画方法都可以添加参数。

  • 第一个参数是动画执行的时长,以毫秒为单位

  • 第二个参数是动画的回调函数 (动画完成后自动调用的函数)

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 2 <html>
 3     <head>
 4         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 5         <title>Untitled Document</title>
 6         <link href="css/style.css" type="text/css" rel="stylesheet" />
 7         <script type="text/javascript" src="script/jquery-1.7.2.js"></script>
 8     
 9 <script type="text/javascript">
10         $(function(){
11             //显示   show()  对隐藏的元素有效
12             $("#btn1").click(function(){
13                 $("#div1").show(1000,function () {
14                     alert("show动画回调函数")
15                 });//有两个参数,可以不写参数(不写表示立即执行)
16             });     
17             //隐藏  hide() 对可见的有效
18             $("#btn2").click(function(){
19                 $("#div1").hide(1000);
20             }); 
21             //切换   toggle()
22             $("#btn3").click(function(){
23                 $("#div1").toggle(1000);
24             });
25 26             //形成动画的操作
27             $("#btn8").click(function(){
28                 $("#div1").toggle(1000,donghua);
29             });
30             var donghua = function () {
31                 $("#div1").toggle(1000,donghua);
32             }
33             
34             
35             //淡入   fadeIn()
36             $("#btn4").click(function(){
37                 $("#div1").fadeIn(500);
38             }); 
39             //淡出  fadeOut()
40             $("#btn5").click(function(){
41                 $("#div1").fadeOut(500);
42             }); 
43             
44             //淡化到  fadeTo()  与其它的不同 有多个参数
45             $("#btn6").click(function(){
46                 $("#div1").fadeTo(2000,0.5,function () {
47                     alert("fadeTo完成")
48                 });//speed速度  to到达的透明度  
49             }); 
50             //淡化切换  fadeToggle()
51             $("#btn7").click(function(){
52                 $("#div1").fadeToggle(1000);
53             }); 
54         })
55 </script>
56     
57     </head>
58     <body>
59         <table style="float: left;">
60             <tr>
61                 <td><button id="btn1">显示show()</button></td>
62             </tr>
63             <tr>
64                 <td><button id="btn2">隐藏hide()</button></td>
65             </tr>
66             <tr>
67                 <td><button id="btn3">显示/隐藏切换 toggle()</button></td>
68             </tr>
69             <tr>
70                 <td><button id="btn4">淡入fadeIn()</button></td>
71             </tr>
72             <tr>
73     <td><button id="btn5">淡出fadeOut()</button></td>
74 </tr>
75 <tr>
76 <td><button id="btn6">淡化到fadeTo()</button></td>
77 </tr>
78 <tr>
79 <td><button id="btn7">淡化切换fadeToggle()</button></td>
80 </tr>
81 <tr>
82 <td><button id="btn8">动画</button></td>
83 </tr>
84 </table>
85 
86 <div id="div1" style="float:left;border: 1px solid;width: 300px;height: 200px;">
87     jquery动画定义了很多种动画效果,可以很方便的使用这些动画效果
88 </div>
89 </body>
90 91 </html>

练习品牌展示 需求:

1.点击按钮的时候,隐藏和显示卡西欧之后的品牌。

2.当显示全部内容的时候,按钮文本为“显示精简品牌” 然后,小三角形向上。所有品牌产品为默认颜色。

3.当只显示精简品牌的时候,要隐藏卡西欧之后的品牌,按钮文本为“显示全部品牌” 然后小三形向下。并且把 佳能,尼康的品牌颜色改为红色(给 li 标签添加 promoted 样式即可)

  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2 <html xmlns="http://www.w3.org/1999/xhtml">
  3 <head>
  4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5 <title>品牌展示练习</title>
  6 <style type="text/css">
  7 * {
  8     margin: 0;
  9     padding: 0;
 10 }
 11  12 body {
 13     font-size: 12px;
 14     text-align: center;
 15 }
 16  17 a {
 18     color: #04D;
 19     text-decoration: none;
 20 }
 21  22 a:hover {
 23     color: #F50;
 24     text-decoration: underline;
 25 }
 26  27 .SubCategoryBox {
 28     width: 600px;
 29     margin: 0 auto;
 30     text-align: center;
 31     margin-top: 40px;
 32 }
 33  34 .SubCategoryBox ul {
 35     list-style: none;
 36 }
 37  38 //后代选择器   
 39 .SubCategoryBox ul li {
 40     display: block;
 41     float: left;
 42     width: 200px;
 43     line-height: 20px;
 44 }
 45  46 .showmore , .showless{
 47     clear: both;
 48     text-align: center;
 49     padding-top: 10px;
 50 }
 51  52 .showmore a , .showless a{
 53     display: block;
 54     width: 120px;
 55     margin: 0 auto;
 56     line-height: 24px;
 57     border: 1px solid #AAA;
 58 }
 59  60 /*向下的箭头图片*/
 61 .showmore a span {
 62     padding-left: 15px;
 63     background: url(img/down.gif) no-repeat 0 0;
 64 }
 65  66 /*向上的箭头图片*/
 67 .showless a span {
 68     padding-left: 15px;
 69     background: url(img/up.gif) no-repeat 0 0;
 70 }
 71  72 .promoted a {
 73     color: #F50;
 74 }
 75 </style>
 76 <script type="text/javascript" src="script/jquery-1.7.2.js"></script>
 77 <script type="text/javascript">
 78     $(function() {
 79         // 基本初始状态
 80         $("li:gt(5):not(:last)").hide();//隐藏无序列表中大于索引5的但是不包括最后一个
 81  82         // 给功能的按钮绑定单击事件     类选择器.showmore 下的a标签
 83         $(".showmore a").click(function () {
 84             // 让某些品牌,显示,或隐藏
 85             $("li:gt(5):not(:last)").toggle();
 86              
 87             // 判断 品牌,当前是否可见
 88             if( $("li:gt(5):not(:last)").is(":hidden") ){
 89                 // 品牌隐藏的状态 :1 显示全部品牌    == 角标向下 showmore
 90                 $("div div a span").text("显示全部品牌");
 91  92                 $("div div").removeClass();//移除样式
 93                 $("div div").addClass("showmore");//添加展示的样式
 94  95                 // 去掉高亮
 96                 $("li:contains('索尼')").removeClass("promoted");
 97  98             } else {
 99                 // 品牌可见的状态:2 显示精简品牌  == 角标向上 showless
100                 $("div div a span").text("显示精简品牌");
101 102                 $("div div").removeClass();
103                 $("div div").addClass("showless");//添加收回的样式
104 105                 // 加高亮
106                 $("li:contains('索尼')").addClass("promoted");
107             }
108 109             return false;
110         });
111     });
112 </script>
113 </head>
114 <body>
115     <div class="SubCategoryBox">
116         <ul>
117             <li><a href="#">佳能</a><i>(30440) </i></li>
118             <li><a href="#">索尼</a><i>(27220) </i></li>
119 <li><a href="#">三星</a><i>(20808) </i></li>
120 <li><a href="#">尼康</a><i>(17821) </i></li>
121 <li><a href="#">松下</a><i>(12289) </i></li>
122 <li><a href="#">卡西欧</a><i>(8242) </i></li>
123 <li><a href="#">富士</a><i>(14894) </i></li>
124 <li><a href="#">柯达</a><i>(9520) </i></li>
125 <li><a href="#">宾得</a><i>(2195) </i></li>
126 <li><a href="#">理光</a><i>(4114) </i></li>
127 <li><a href="#">奥林巴斯</a><i>(12205) </i></li>
128 <li><a href="#">明基</a><i>(1466) </i></li>
129 <li><a href="#">爱国者</a><i>(3091) </i></li>
130 <li><a href="#">其它品牌相机</a><i>(7275) </i></li>
131 </ul>
132 <div class="showmore">
133 <a href="more.html"><span>显示全部品牌</span></a>
134 </div>
135 </div>
136 </body>
137 </html>

 



 
posted @ 2023-04-23 10:10  暴躁C语言  阅读(15)  评论(0编辑  收藏  举报