Correction status:qualified
Teacher's comments:
主题:
使用javascript实现网页动态变化,向网页元素中插入数据,改变网页元素的样式及内容。
实现效果:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>1.选项卡</title> <style type="text/css"> h2 { text-align: center; } .box { width:500px; height:330px; background-color:#f3f9f1; border:1px solid #a1a1a1; margin:20px auto; } .box > ul { margin:0; padding:0; background-color: #f3f9f1; overflow: hidden; /*隐藏溢出部分*/ } .box > ul li { width:90px; height:35px; list-style-type:none; float: left; border-right:1px solid #801da1; border-bottom:1px solid #801da1; text-align: center; line-height: 35px; } .box ul + span { float: right; width:90px; height:32px; line-height: 35px; margin-top: -35px; /*块元素向上移动*/ } /*选择.box下的ul的兄弟span元素的子元素a*/ .box ul + span > a { text-decoration: none; /*去掉下划线*/ } /*选择.box下的class为active的li元素*/ .box li.active { font-weight:bold; /*设置粗体文本*/ border-bottom: none; border-top: 3px solid #c93756; } .box div { display: none; /*隐藏元素*/ } .box div ul { margin:0; padding:20px; list-style-type: none; } .box div ul li { line-height: 1.5em; } .box div ul li a { text-decoration: none; } .box div ul li a:hover { color:#000; } .box div ul li span { float:right; color:#c93756; } </style> </head> <body> <h2>选项卡实例</h2> <div class="box"> <ul> <li class="active">选项卡一</li> <li>选项卡二</li> <li>选项卡三</li> <li>选项卡四</li> </ul> <span><a href="">更多内容>></a></span> <div style="display:block;"> <ul> <li><a href="">第一选项卡内容</a><span>2018-03-01</span></li> <li><a href="">第一选项卡内容</a><span>2018-03-01</span></li> <li><a href="">第一选项卡内容</a><span>2018-03-01</span></li> <li><a href="">第一选项卡内容</a><span>2018-03-01</span></li> <li><a href="">第一选项卡内容</a><span>2018-03-01</span></li> <li><a href="">第一选项卡内容</a><span>2018-03-01</span></li> <li><a href="">第一选项卡内容</a><span>2018-03-01</span></li> <li><a href="">第一选项卡内容</a><span>2018-03-01</span></li> <li><a href="">第一选项卡内容</a><span>2018-03-01</span></li> <li><a href="">第一选项卡内容</a><span>2018-03-01</span></li> </ul> </div> <div> <ul> <li><a href="">第二选项卡内容</a><span>2018-03-02</span></li> <li><a href="">第二选项卡内容</a><span>2018-03-02</span></li> <li><a href="">第二选项卡内容</a><span>2018-03-02</span></li> <li><a href="">第二选项卡内容</a><span>2018-03-02</span></li> <li><a href="">第二选项卡内容</a><span>2018-03-02</span></li> <li><a href="">第二选项卡内容</a><span>2018-03-02</span></li> <li><a href="">第二选项卡内容</a><span>2018-03-02</span></li> <li><a href="">第二选项卡内容</a><span>2018-03-02</span></li> <li><a href="">第二选项卡内容</a><span>2018-03-02</span></li> <li><a href="">第二选项卡内容</a><span>2018-03-02</span></li> </ul> </div> <div> <ul> <li><a href="">第三选项卡内容</a><span>2018-03-03</span></li> <li><a href="">第三选项卡内容</a><span>2018-03-03</span></li> <li><a href="">第三选项卡内容</a><span>2018-03-03</span></li> <li><a href="">第三选项卡内容</a><span>2018-03-03</span></li> <li><a href="">第三选项卡内容</a><span>2018-03-03</span></li> <li><a href="">第三选项卡内容</a><span>2018-03-03</span></li> <li><a href="">第三选项卡内容</a><span>2018-03-03</span></li> <li><a href="">第三选项卡内容</a><span>2018-03-03</span></li> <li><a href="">第三选项卡内容</a><span>2018-03-03</span></li> <li><a href="">第三选项卡内容</a><span>2018-03-03</span></li> </ul> </div> <div> <ul> <li><a href="">第四选项卡内容</a><span>2018-03-04</span></li> <li><a href="">第四选项卡内容</a><span>2018-03-04</span></li> <li><a href="">第四选项卡内容</a><span>2018-03-04</span></li> <li><a href="">第四选项卡内容</a><span>2018-03-04</span></li> <li><a href="">第四选项卡内容</a><span>2018-03-04</span></li> <li><a href="">第四选项卡内容</a><span>2018-03-04</span></li> <li><a href="">第四选项卡内容</a><span>2018-03-04</span></li> <li><a href="">第四选项卡内容</a><span>2018-03-04</span></li> <li><a href="">第四选项卡内容</a><span>2018-03-04</span></li> <li><a href="">第四选项卡内容</a><span>2018-03-04</span></li> </ul> </div> </div> </body> <script type="text/javascript"> // 获取相应元素 var box = document.getElementsByClassName('box')[0] var ul = box.getElementsByTagName('ul')[0] var tab = ul.getElementsByTagName('li') var list = box.getElementsByTagName('div') // 循环添加选项卡事件 for (var i=0; i<tab.length; i++) { // 需要给选项卡添加自定义属性(html渲染时非默认属性会被删除) tab[i].index = i // 添加选项卡事件 tab[i].onmouseover = function() { // 重置标签样式 for (var i=0; i<tab.length; i++) { // 非当前标签的其他标签样式清除 tab[i].className = '' // 非当前标签显示内容隐藏 list[i].style.display = 'none' } // 改变鼠标划过时的标签样式 this.className = 'active' list[this.index].style.display = 'block' } } </script> </html>
点击 "运行实例" 按钮查看在线实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>2.仿机器人聊天窗口</title> <style type="text/css"> div:nth-child(1) { width:400px; height:600px; background-color: #a1afc9; margin:30px auto; color:#003472; box-shadow: 2px 2px 2px #ddd; } h2 { text-align: center; } div:nth-child(2) { width:350px; height:400px; border:1px solid #003472; background-color: #f0f0f4; margin:auto; } div:nth-child(2) ul { padding:10px; list-style-type: none; line-height: 1.5em; overflow:hidden; } table { width:350px; height:100px; margin:10px auto; /*border:1px solid red;*/ } .list { font-style: 22px; } button { width:80px; height:30px; margin:10px; } </style> </head> <body> <div> <h2>逗比瞎聊</h2> <div contenteditable="true"> <ul class="list"> <li></li> </ul> </div> <table> <tr> <td> <textarea name="input" id="" cols="30" rows="5"></textarea> </td> <td> <button name="send">发送</button> <button name="clean">清屏</button> </td> </tr> </table> </div> </body> <script type="text/javascript"> // 获取html元素 var input = document.getElementsByName('input')[0] var send = document.getElementsByName('send')[0] var list = document.getElementsByClassName('list')[0] // 创建一个计数变量用来控制聊天框中的内容条目数 var sum = 0 // 清空按键变量 var clean = document.getElementsByName('clean')[0] // 按钮事件添加 send.onclick = function() { // 条件判断(用户提交空内容提示) if (input.value.length == 0) { alert('我滴哥,瞎聊也得写点啥嘛!') return false } var text = input.value // 清空输入框已发送的内容 input.value = '' // 以下两种方法都不适合用来添加条目 // list.innerHTML = '<li>' + input.value + '</li>' // list.innerHTML += '<li>' + input.value + '</li>' // 建议使用js创建元素节点的方法添加条目 var li = document.createElement('li') // 将头像图片样式存入一个变量,方便调用 var imgStyle = '<img src="http://t1.aixinxi.net/o_1ca18ajjo5ffrun1n2s94nsd2a.jpg-w.jpg" width=30 style="border-radius:50%">' li.innerHTML = imgStyle + text // 将内容插入到当前节点中:父节点.appendChild(当前节点) list.appendChild(li) sum += 1 setTimeout(function() { var say = ['你是个逗比,我么有你逗比!','哈哈!','给你介绍一个小姐姐怎么样?','你想要哪个小姐姐呀?告诉我就行!'] //使用Math.floor()函数取数组的元素值,Math.random()*4取0-4之间的数字 var random = say[Math.floor(Math.random()*4)] var reply = document.createElement('li') var sevPic = '<img src="http://t1.aixinxi.net/o_1ca18bjeh854shmjt16m9j4la.jpg-w.jpg" width=30 style="border-radius:50%">' // 随机取自动回复数组中的字符串 reply.innerHTML = sevPic + '<span style="color:#0aa344;">' + random +'</span>' list.appendChild(reply) sum += 1 },2000) if (sum > 10) { list.innerHTML = '' sum = 0 } // 输入时保持焦点在输入框 input.focus() } // 按键清除聊天窗口内容 clean.onclick = function() { list.innerHTML = '' return false } </script> </html>
点击 "运行实例" 按钮查看在线实例
理解:
这节课较深入的了解了javascript的语法及变量定义技巧,掌握了基础的javascript编程概念,重点在于灵活运用。
还得加深理解。