jQuery(练习)
隔行变色
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>01__表格隔行变色</title> <style> div, span, p { width: 140px; height: 140px; margin: 5px; background: #aaa; border: #000 1px solid; float: left; font-size: 17px; font-family: Verdana; } div.mini { width: 55px; height: 55px; background-color: #aaa; font-size: 12px; } div.hide { display: none; } #data { width: 600px; } #data, td, th { border-collapse: collapse; border: 1px solid #aaaaaa; } th, td { height: 28px; } #data thead { background-color: #333399; color: #ffffff; } .odd { background-color: #ccccff; } </style> </head> <body> <table id="data"> <thead> <tr> <th>姓名</th> <th>工资</th> <th>入职时间</th> <th>操作</th> </tr> </thead> <tbody> <tr> <td>Tom</td> <td>$3500</td> <td>2010-10-25</td> <td><a href="javascript:void(0)">删除</a></td> </tr> <tr> <td>Mary</td> <td>$3400</td> <td>2010-12-1</td> <td><a href="javascript:void(0)">删除</a></td> </tr> <tr> <td>King</td> <td>$5900</td> <td>2009-08-17</td> <td><a href="javascript:void(0)">删除</a></td> </tr> <tr> <td>Scott</td> <td>$3800</td> <td>2012-11-17</td> <td><a href="javascript:void(0)">删除</a></td> </tr> <tr> <td>Smith</td> <td>$3100</td> <td>2014-01-27</td> <td><a href="javascript:void(0)">删除</a></td> </tr> <tr> <td>Allen</td> <td>$3700</td> <td>2011-12-05</td> <td><a href="javascript:void(0)">删除</a></td> </tr> </tbody> </table> <script type="text/javascript" src="jquery-1.10.1.js"></script> <script type="text/javascript"> $(\'#data>tbody>tr:odd\').css(\'background\', \'#ccccff\') // $(\'#data>tbody>tr:odd\').addClass(\'odd\') //$(\'#data>tbody>tr:odd\').attr(\'class\', \'odd\') </script> </body> </html>
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>02_多Tab点击切换</title> 6 <style> 7 * { 8 margin: 0; 9 padding: 0; 10 } 11 12 #tab li { 13 float: left; 14 list-style: none; 15 width: 80px; 16 height: 40px; 17 line-height: 40px; 18 cursor: pointer; 19 text-align: center; 20 } 21 22 #container { 23 position: relative; 24 } 25 26 #content1, #content2, #content3 { 27 width: 300px; 28 height: 100px; 29 padding: 30px; 30 position: absolute; 31 top: 40px; 32 left: 0; 33 } 34 35 #tab1, #content1 { 36 background-color: #ffcc00; 37 } 38 39 #tab2, #content2 { 40 background-color: #ff00cc; 41 } 42 43 #tab3, #content3 { 44 background-color: #00ccff; 45 } 46 </style> 47 </head> 48 <body> 49 <h2>多Tab点击切换</h2> 50 51 <ul id="tab"> 52 <li id="tab1" value="1">10元套餐</li> 53 <li id="tab2" value="2">30元套餐</li> 54 <li id="tab3" value="3">50元包月</li> 55 </ul> 56 57 <div id="container"> 58 <div id="content1"> 59 10元套餐详情:<br/> 每月套餐内拨打100分钟,超出部分2毛/分钟 60 </div> 61 <div id="content2" style="display: none"> 62 30元套餐详情:<br/> 每月套餐内拨打300分钟,超出部分1.5毛/分钟 63 </div> 64 <div id="content3" style="display: none"> 65 50元包月详情:<br/> 每月无限量随心打 66 </div> 67 </div> 68 69 70 <script type="text/javascript" src="jquery-1.10.1.js"></script> 71 <script type="text/javascript"> 72 73 var $contents = $(\'#container>div\') //包装成jQuery对象 74 // 给3个li加监听 75 /*$(\'#tab>li\').click(function () { // 隐式遍历,相当于给每个li绑定了点击事件,但是还是个伪数组 76 //alert(\'----\') 77 // 隐隐藏所有内容div 78 $contents.css(\'display\', \'none\') 79 // 显示对应的内容div 80 // 得到当前点击的li在兄弟中下标 81 var index = $(this).index() 82 // console.log( $(this).index()) 83 // 找到对应的内容div, 并显示 84 $contents[index].style.display = \'block\' // 原生获取css样式 85 // $($contents[index]).css(\'display\', \'block\') //$contents[index]不是js原生对象,需要在外套一个$,变成jQuery对象 86 })*/ 87 88 89 // 第二种方法,不需要全部隐藏$contents 90 var currIndex = 0 //当前显示的内容div的下标 91 $(\'#tab>li\').click(function () { // 隐式遍历 92 //alert(\'----\') 93 // 隐藏当前已经显示的内容div 94 $contents[currIndex].style.display = \'none\' 95 // 显示对应的内容div 96 // 得到当前点击的li在兄弟中下标 97 var index = $(this).index() 98 // 找到对应的内容div, 并显示 99 $contents[index].style.display = \'block\' 100 101 // 更新下标 102 currIndex = index 103 }) 104 105 106 </script> 107 </body> 108 </html>
1 <!DOCTYPE html> 2 <html> 3 4 <head> 5 <meta charset="UTF-8"> 6 <title>03_回到顶部</title> 7 <style> 8 #to_top { 9 width: 30px; 10 height: 40px; 11 font: 14px/20px arial; 12 text-align: center; 13 background: #06c; 14 position: fixed; 15 cursor: pointer; 16 color: #fff; 17 left: 1050px; 18 top: 500px; 19 } 20 </style> 21 </head> 22 <body style="height: 2000px;"> 23 24 <div id="to_top">返回顶部</div> 25 26 <script type="text/javascript" src="jquery-1.10.1.js"></script> 27 <script type="text/javascript"> 28 $(\'#to_top\').click(function () { 29 // 瞬间滚到顶部 30 //$(\'html,body\').scrollTop(0) 31 32 // 平滑滚到顶部 33 // 总距离 34 var $page = $(\'html,body\') 35 var distance = $(\'html\').scrollTop() + $(\'body\').scrollTop() 36 // 总时间 37 var time = 500 38 // 间隔时间 39 var intervalTime = 50 40 //每次滑动的距离 41 var itemDistance = distance/(time/intervalTime) 42 // 使用循环定时器不断滚动 43 var intervalId = setInterval(function () { 44 //当前top 45 distance -= itemDistance 46 // 到达顶部, 停止定时器 47 if(distance<=0) { 48 distance = 0 //修正 49 clearInterval(intervalId) 50 } 51 $page.scrollTop(distance) 52 }, intervalTime) 53 54 }) 55 </script> 56 </body> 57 58 </html>
爱好选择器
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>全选练习</title> 6 </head> 7 <body> 8 <form method="post" action=""> 9 你爱好的运动是?<input type="checkbox" id="checkedAllBox"/>全选/全不选 10 <br/> 11 <input type="checkbox" name="items" value="足球"/>足球 12 <input type="checkbox" name="items" value="篮球"/>篮球 13 <input type="checkbox" name="items" value="羽毛球"/>羽毛球 14 <input type="checkbox" name="items" value="乒乓球"/>乒乓球 15 <br/> 16 <input type="button" id="checkedAllBtn" value="全 选"/> 17 <input type="button" id="checkedNoBtn" value="全不选"/> 18 <input type="button" id="checkedRevBtn" value="反 选"/> 19 <input type="button" id="sendBtn" value="提 交"/> 20 </form> 21 <script type="text/javascript"> 22 /* 23 功能说明: 24 1. 点击\'全选\': 选中所有爱好 25 2. 点击\'全不选\': 所有爱好都不勾选 26 3. 点击\'反选\': 改变所有爱好的勾选状态 27 4. 点击\'提交\': 提示所有勾选的爱好 28 5. 点击\'全选/全不选\': 选中所有爱好, 或者全不选中 29 6. 点击某个爱好时, 必要时更新\'全选/全不选\'的选中状态 30 技术点: 31 1.DOM查询 32 2.事件回调函数绑定 33 3.checkbox操作 34 4.事件回调函数中的this 35 5.逻辑思维能力 36 */ 37 38 window.onload = function () { 39 40 var items = document.getElementsByName("items"); 41 42 //1.#checkedAllBtn 43 var checkedAllBtn = document.getElementById("checkedAllBtn"); 44 checkedAllBtn.onclick = function () { 45 setItemsChecked(true); 46 checkedAllBox.checked = true; 47 }; 48 49 //2.#checkedNoBtn 50 var checkedNoBtn = document.getElementById("checkedNoBtn"); 51 checkedNoBtn.onclick = function () { 52 setItemsChecked(false); 53 checkedAllBox.checked = false; 54 }; 55 //3.#checkedRevBtn 56 var checkedRevBtn = document.getElementById("checkedRevBtn"); 57 checkedRevBtn.onclick = function () { 58 setItemsChecked(); 59 //点满时将checkedAllBox.checked设置为true 60 //统计当前items中被选中的个数 61 checkedAllBox.checked = isAllChecked(); 62 }; 63 64 //4.#checkedAllBox 65 var checkedAllBox = document.getElementById("checkedAllBox"); 66 checkedAllBox.onclick = function () { 67 setItemsChecked(this.checked); 68 }; 69 70 //5.#sendBtn 71 var sendBtn = document.getElementById("sendBtn"); 72 sendBtn.onclick = function () { 73 for (var i = 0; i < items.length; i++) { 74 if (items[i].checked) { 75 alert(items[i].value); 76 } 77 } 78 }; 79 //6.items 80 for (var i = 0; i < items.length; i++) { 81 items[i].onclick = function () { 82 //点满时将checkedAllBox.checked设置为true 83 //统计当前items中被选中的个数 84 checkedAllBox.checked = isAllChecked(); 85 } 86 } 87 88 function isAllChecked() { 89 for (var j = 0; j < items.length; j++) { 90 if (!items[j].checked) 91 return false; 92 } 93 return true; 94 } 95 96 function setItemsChecked(checked) { 97 for (var i = 0; i < items.length; i++) { 98 items[i].checked = (checked == undefined) ? (!items[i].checked) : checked; 99 } 100 } 101 } 102 </script> 103 </body> 104 </html>
待续。。。