一.javascript事件调用的三种方式
1.方法一,不推荐
实例
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>事件的方法调用</title> </head> <body> <a href="images/boy.jpeg" onclick="window.open(this.href,'','width=300,height=300,top=100,left:200');return false;"> 查看大图片 </a> </body> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例
2.方法二.
实例
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>事件的方法调用</title> </head> <body> <a href="images/boy.jpeg" onclick="show(this);return false;"> 查看大图片 </a> </body> <script> function show(pic) { window.open(pic.href,'','width=300,height=300,top=100,left:200'); } </script> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例
3.方法三
实例
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>事件的方法调用</title> </head> <body> <a href="images/boy.jpeg" > 查看大图片 </a> </body> <script> let obj=document.getElementByTagName('a')[0]; obj.onclick=function (event){ window.open(this.href,'','width=300,height=300,top=100,left:200'); return false; } </script> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例
二.js实现相册的案例
实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>实战: 明星网络相册</title> <style> .box { width: 500px; height: 700px; background-color: #efefef; border: 1px solid lightgrey; 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-type: none; float: left; background-color: skyblue; margin-left: 20px; } .box ul li a { display: block; width: 100px; height: 40px; line-height: 40px; color: white; text-decoration-line: none; } .box ul li:hover { font-size: 1.2rem; background-color: coral; } .box .pic { width: 450px; height: 450px; border: 1px solid lightgrey; margin: 50px auto 0; } .box .pic img { width: 100%; height: 100%; } </style> </head> <body> <div class="box"> <h2>明星相册</h2> <ul> <li><a href="images/zly.jpg" title="《楚乔传》,《花千骨》,《陆贞传奇》...">赵丽颖</a></li> <li><a href="images/gyy.jpg" title="《咱们结婚吧》,《倚天屠龙记》,《爱无悔》...">高圆圆</a></li> <li><a href="images/sl.jpg" title="《那年花开月正圆》,《甄嬛传》,《玉观音》...">孙俪</a></li> <li><a href="images/fbb.jpg" title="《还珠格格》,《武媚娘传奇》,《我不是潘金莲》...">范冰冰</a></li> </ul> <!--图片显示区--> <div class="pic"> <img src="images/zwt.png" alt="" id="img"> </div> <!--图片说明区--> <p id="info"></p> </div> </body> </html> <script> //获取到页面中所有的a标签 let pic = document.getElementsByTagName('a'); //给所有的a标签循环添加事件 for (let i=0; i < pic.length; i++) { pic[i].onclick = function (event) { // alert(event.type); //1.获取到图片信息 let picUrl = pic[i].href; // 图片地址 let picInfo = pic[i].title; // 图片信息 let picName = pic[i].innerHTML; //元素内容 // 2.获取页面中需要被替换的内容 let img = document.getElementById('img'); let p = document.getElementById('info'); //3. 将对应的图片和信息占位符进行替换 img.src = picUrl; p.innerHTML = '<span style="color:coral">'+picName + ': ' + picInfo+'</span>'; return false; // 禁用掉a的点击 默认行为 } } </script>
运行实例 »
点击 "运行实例" 按钮查看在线实例
实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>实战: 明星网络相册</title> <style> .box { width: 500px; height: 700px; background-color: #efefef; border: 1px solid lightgrey; 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-type: none; float: left; background-color: skyblue; margin-left: 20px; } .box ul li a { display: block; width: 100px; height: 40px; line-height: 40px; color: white; text-decoration-line: none; } .box ul li:hover { font-size: 1.2rem; background-color: coral; } .box .pic { width: 450px; height: 450px; border: 1px solid lightgrey; margin: 50px auto 0; } .box .pic img { width: 100%; height: 100%; } </style> </head> <body> <div class="box"> <h2>明星相册</h2> <ul> <li><a href="images/zly.jpg" title="《楚乔传》,《花千骨》,《陆贞传奇》...">赵丽颖</a></li> <li><a href="images/gyy.jpg" title="《咱们结婚吧》,《倚天屠龙记》,《爱无悔》...">高圆圆</a></li> <li><a href="images/sl.jpg" title="《那年花开月正圆》,《甄嬛传》,《玉观音》...">孙俪</a></li> <li><a href="images/fbb.jpg" title="《还珠格格》,《武媚娘传奇》,《我不是潘金莲》...">范冰冰</a></li> </ul> <!--图片显示区--> <div class="pic"> <img src="images/zwt.png" alt="" id="img"> </div> <!--图片说明区--> <p id="info"></p> </div> </body> </html> <script> //获取到页面中所有的a标签 let pic = document.getElementsByTagName('a'); //给所有的a标签循环添加事件 for (let i=0; i < pic.length; i++) { pic[i].onclick = function (event) { // alert(event.type); //1.获取到图片信息 let picUrl = pic[i].href; // 图片地址 let picInfo = pic[i].title; // 图片信息 let picName = pic[i].innerHTML; //元素内容 // 2.获取页面中需要被替换的内容 let img = document.getElementById('img'); let p = document.getElementById('info'); //3. 将对应的图片和信息占位符进行替换 img.src = picUrl; p.innerHTML = '<span style="color:coral">'+picName + ': ' + picInfo+'</span>'; return false; // 禁用掉a的点击 默认行为 } } </script>
运行实例 »
点击 "运行实例" 按钮查看在线实例
三.实现计算器加减乘除的功能
实例
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>计算器</title> <style> .box { width: 500px; height: 200px; background-color: #efefef; border: 1px solid lightgrey; text-align: center; margin: 20px auto; color: #636363; border-radius: 15px; box-shadow: 2px 2px 2px #999; } table { margin: auto; /*border: 1px solid red;*/ } td { width: 100px; height: 30px; padding: 5px 10px; } input, select { width: 100%; height: 100%; border: none; text-align: left; padding-left: 15px; } button { width: 100%; height: 100%; border: none; background-color: skyblue; color: white; } button:hover { cursor: pointer; background-color: coral; width: 110%; height: 110%; } </style> </head> <body> <div class="box"> <h2>计算器</h2> <form> <table> <tr> <td><input type="text" name="opt1" placeholder="操作数1"></td> <td> <select name="option" id=""> <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 align="right" colspan="2"><h3>结果:</h3></td> <td align="left" colspan="2"><h3 id="result"></h3></td> </tr> </table> </form> </div> <script> //1. 获取操作数,按钮,结果占位符 let opt1 = document.getElementsByName('opt1')[0]; let opt2 = document.getElementsByName('opt2')[0]; let opt = document.getElementsByName('option')[0]; let btn = document.getElementsByTagName('button')[0]; let result = document.getElementById('result'); //2. 给按钮添加事件,进行计算 btn.onclick = function () { //操作数初始化 let data1 = 0; let data2 = 0; if (opt1.value.length === 0) { alert('第一个操作数不能为空'); opt1.focus(); return false; } else if (isNaN(opt1.value)) { alert('第一个操作数必须为数字'); opt1.focus(); return false; } else if (opt2.value.length === 0) { alert('第二个操作数不能为空'); opt2.focus(); return false; } else if (isNaN(opt2.value)) { alert('第二个操作数必须为数字'); opt2.focus(); return false; } else { data1 = parseFloat(opt1.value); data2 = parseFloat(opt2.value); } //对操作符进行处理 let option = opt.value; // 拿到了用户选择的操作 let temp = 0; let 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('除数不能为零'); opt2.focus(); opt2.value = ''; return false; } else { temp = data1 / data2; // 四舍五入,仅保留二位小数 temp = Math.round(temp * 100) / 100; } break; } let str = '<span style="color:coral">'; str += data1 + ' ' +flag + ' ' + data2 + ' = ' +temp; str += '</span>'; result.innerHTML = str; } </script> </body> </html>
运行实例 »
点击 "运行实例" 按钮查看在线实例