本次作业通过两个小案例,熟悉javascript的基本知识点。
第一个案例是制作一个明星相册,可以通过点击明星名字显示其相片及主要作品。
第二个案例是制作一个迷你计算器,可以实现加、减、乘、除运算,并显示结果,同时具备一定的数据校验功能,并给出提示。下面就是两个案例的代码。
1 明星相册案例代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>js实战明星相册-3月29日作业</title> <style type="text/css"> .box{ width: 500px; height: 700px; background-color: #efefef; border: 1px solid lightgray; margin: 20px auto; text-align: center; color: #636363; box-shadow: 2px 2px 2px #999; } .box ul{ margin: 0; padding: 0; overflow: hidden; } .box ul li{ list-style: none; float: left; background-color: skyblue; margin-left: 20px; text-shadow: 1px 1px 1px #999; } .box ul li a{ display: block; width: 100px; height: 40px; line-height: 40px; color: white; text-decoration: none; } .box ul li:hover{ font-size: 1.2em; background-color: coral; } .box .pic{ width: 450px; height: 470px; border: 1px solid lightgray; line-height: 1px; margin: auto; margin-top: 50px; } .box .pic img{ width: 100%; height: 100%; } </style> </head> <body> <!-- 知识点:1、js代码写在哪里。2、如何调用。 3、函数的用法。 --> <div class="box"> <h2>明星相册</h2> <ul> <li> <!-- onclick="changePic(this);":添加onclick动作,函数内容在下面的script标签中书写; return false:(禁止当前链接生效) --> <a href="../images/zly.jpg" title="《楚乔传》,《花千骨》,《陆贞传奇》..." onclick="changePic(this);return false">赵丽颖</a> </li> <li> <a href="../images/gyy.jpg" title="《倚天屠龙记》,《我们结婚吧》,《爱无悔》..." onclick="changePic(this);return false">高圆圆</a> </li> <li> <a href="../images/sl.jpg" title="《那年花开月正圆》,《甄环传》,《玉观音》..." onclick="changePic(this);return false" >孙俪</a> </li> <li> <a href="../images/fbb.jpg" title="《还珠格格》,《武媚娘传奇》,《我不是潘金莲》..." onclick="changePic(this);return false">范冰冰</a> </li> </ul> <div class="pic"> <img src="../images/zwt.png" alt="" id="img"> </div> <!-- !!!注意此处p标签设置的是id,因为开始这里使用了class而导致后面获取不到正确的信息,使相片一直无法正确打开,查了很长时间才发现 --> <p id="info"></p> </div> <script type="text/javascript"> function changePic(pic1){ var picUrl = pic1.href var picInfo = pic1.title var picName = pic1.innerHTML var img = document.getElementById('img') var p = document.getElementById('info') img.src=picUrl // 给输出信息加样式 p.innerHTML='<span style="color:coral">'+picName+':'+picInfo+'</span>' } </script> </body> </html>
点击 "运行实例" 按钮查看在线实例
效果图:
2 迷你计算器代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>迷你计算器-3月29日作业</title> <style type="text/css"> .box{ width: 500px; height: 200px; background-color: #efefef; border: 1px solid lightgray; margin: 20px auto; text-align: center; color: #636363; box-shadow: 2px 2px 2px #999; } table{ margin: auto; } td{ width: 100px; height: 30px; padding: 5px 10px; } input,select{ width: 100%; height: 100%; border: none; text-align: center; } button{ width: 100%; height: 100%; border: none; background-color: skyblue; color: white; } button:hover{ background-color: coral; width: 105%; height: 105%; cursor: pointer; } </style> </head> <body> <!-- 知识点:1、学会如何获取页面元素;2、学会条件判断语句;3、关于事件函数的用法。 --> <div class="box"> <h2>迷你计算器</h2> <form> <table> <tr> <td><input type="text" name="opt1" placeholder="操作数1"></td> <td> <select name="option"> <option value="null">请选择操作符</option> <option value="add">+</option> <option value="sub">-</option> <option value="mul">*</option> <option value="div">/</option> </select> </td> <td><input type="text" name="opt2" placeholder="操作数2"></td> <td><button type="button">计算</button></td> </tr> <tr> <td colspan="2"><h3>结果:</h3></td> <td colspan="2" align="left"><h3 id="placeholder"></h3></td> </tr> </table> </form> </div> <script type="text/javascript"> //1、获取操作数、按钮、结果点占位符 var opt1 = document.getElementsByName('opt1')[0] var opt2 = document.getElementsByName('opt2')[0] var opt = document.getElementsByName('option')[0] // 用标签名来获取,TagaName var btn = document.getElementsByTagName('button')[0] var placeholder = document.getElementById('placeholder') //2、给按钮加事件,执行计算 btn.onclick = function(){ if (opt1.value.length == 0){ alert('第一个操作数不能为空') // 焦点放在op1 opt1.focus() return false } else if (isNaN(opt1.value)) { alert('非法数据:第一个操作数必须是数字') } else if (opt2.value.length == 0){ alert('第二个操作数不能为空') // 焦点放在op1 opt2.focus() return false } else if (isNaN(opt2.value)) { alert('非法数据:第二个操作数必须是数字') } else { var data1=parseFloat(opt1.value) var data2=parseFloat(opt2.value) } var option = opt.value var temp=0 var flag='' switch (option){ case 'null': alert('请选择操作符') opt.focus() return false case 'add': flag = '+' temp = data1 + data2 break case 'sub': flag = '-' temp = data1 - data2 break case 'mul': flag = '*' temp = data1 * data2 break case 'div': flag = '/' if (data2==0) { alert('除数不能为0') return false } else { temp = data1 / data2 } break } // placeholder.innerHTML = '<span style="color:skyblue">'+data1 + ' '+flag+' '+data2+'='+temp+'</span>' var str = '<span style="color:#1874CD">' str +=data1 + ' '+flag+' '+data2+'='+temp str +='</span>' placeholder.innerHTML = str } </script> </body> </html>
点击 "运行实例" 按钮查看在线实例
迷你计算器手抄代码:
本课小结:
1.概念:
1-1:js是什么?html写结构,css写样式,js写元素行为与用户交互的,使页面更加的智能,更懂我
1-2:js是客户端的脚本语言,它是直接写到当前的html页面中执行的,不需要服务器环境支持
2.引入方式:
2-1: 标签事件属性中: onclick, onmouseover...
2-2: 写到'<script>js代码</script>',不允许有src属性,否则代码无效
2-3: 写在外部独立的js文件中,用<scirpt src=""></scirpt>进行导入
3.重点: 使用<script>标签编写的js代码应该放在页面中的什么位置最合适?
3-1: 可以放在<head>中
3.2: 可以放在<body>中
3.3: 甚至可以放在<html>标签的外面
所以js代码放在哪里不重要,都会被当前页面加载并执行的
4.变量:
4-1: 声明 var name='peter'
4-2: 如果不用var 声明,会自动成为全局对象window的属性,这是不推荐的
5.类型:
5-1:五个基本类型: Number,String,Boolean, Undefined, Null
5-2:三个对象类型: Object, Array, Function
5-3: 类型检测 typeof
6. 基本操作:
6-1: 算术运算: +,-,*,/, %
6-2: 字符串连接: +
6-3: 比较运算: <,>,==...
6-4: 赋值: =
6-5: 逻辑运行: &&, || , !
7. 语言结构:
7-1: 条件判断: if,if~else,if~else if ,switch, 三元
7-2: 循环: while, do~while, for()
8. 作用域:
js与php一样,没有块作用域,只有函数作用域与全局作用域,任何变量或函数必属其一