博客列表 >利用javascript制作一个简单计算器与相册_2018年9月12日

利用javascript制作一个简单计算器与相册_2018年9月12日

PHP学习
PHP学习原创
2018年09月13日 23:16:17728浏览

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>利用javascript制作一个简单计算器</title>
    <style type="text/css">
        .box {
            width: 600px;
            height: 200px;
            margin: 30px auto;
            background-color: #efefef;
            border: 1px solid lightgray;//加边框
        text-align: center;//字体居中
        color: #636363;
            border-radius: 15px;//圆角
        box-shadow: 2px 2px 2px #999; //给加阴影
        }
        table {
            margin: auto;
        }
        td {
            width: 150px;
            height: 30px;
            padding: 5px 10px;
        }
        input, select {
            width: 100%;
            height: 100%;
            border: none;
            text-align: left;
            padding-left: 15px;
            border-radius: 5px;
        }
        button {
            width: 50px;
            height: 100%;
            border: none;
            text-align: center;
            background-color: skyblue;
            border-radius: 5px;
            color: white;
        }
        button:hover {
            cursor: pointer;//将鼠标停在上面,显示成手掌形状
        background-color: coral;
        }
    </style>
</head>
<body>
<div class="box">
    <form>
        <table>
            <caption>计算器</caption>
            <tr>
                <td><input type="text" name="tp1" 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="tp2" placeholder="操作数2">
                </td>
                <td><button type="button">计算</button></td>
            </tr>
            <tr>
                <td colspan="2" style="text-align: right"><h3>结果</h3></td>
                <td colspan="2" style="text-align: left"><h3 id="result"></h3></td>
            </tr>
        </table>
    </form>
</div>
<script>
    //定位操作数,按钮,结果占位符
    //getElementsByName是以name来获取元素
    //getElementsByTagName是以type类型来获取元素
    //getElementById是以id标签名来获取元素
        let tp1 = document.getElementsByName('tp1')[0];//获取input的name为tp1的元素并赋给变量tp1
        let tp2 = document.getElementsByName('tp2')[0];//获取input的name为tp2的元素并赋给变量tp2
        let set = document.getElementsByName('option')[0];//获取input的name为option的元素并赋给变量set
        let btn = document.getElementsByTagName('button')[0];//获取button的为type的元素并赋给变量btn
        let result = document.getElementById('result');//以ID来获取元素
    //给按钮添加事件,进行计算
    btn.onclick = function () {//点击btn来执行下来的代码onclick是点击的意思
        let data1 = 0;//创建两个变量,来存tp1和tp2获取到的值
        let data2 = 0;
        if (tp1.value.length === 0) {//tp1.value就是tp1里面的值,length就是获取里面值的长度
            alert('第一个操作数不能为0');//弹窗
            tp1.focus();//定位鼠标回到原来的地方
            return false;//反回false
        } else if (isNaN(tp1.value)) {//isNaN是判断里面的值是否为数字
            alert('第一个操作数必须为数字');
            tp1.focus();
            return false;
        } else if (tp2.value.length === 0){
            alert('第二个操作数不能为0');
            tp2.focus();
            return false;
        } else if (isNaN(tp2.value)){
            alert('第二个操作数必须为数字');
            tp2.focus();
            return false;
        } else {
            data1 = parseFloat(tp1.value);
            data2 = parseFloat(tp2.value);
        }

        let option = set.value;//将set里面的值赋给option变量
        let temp = 0;//定义此变量是为了接收最终身的数据
        let flag = '';//定义此变量是为了接收操作符号,最后用在结果中的拼结中
        switch (option) {
            case 'null':
                alert('你还没有选择操作类型');
                set.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 (tp2.value === 0){
                    alert('除数不能为0');
                    tp2.focus();
                    return false;
                } else {
                    temp = data1 / data2;
                    temp = Math.round(temp * 100) / 100;
                }
                break;
        }
        let str = '<span style="color: coral">';
        str =str + data1 +  '' + flag + '' + data2 + '=' + temp;
        str =str + '</span>';
        result.innerHTML = str;//innerHTML将结果以HTML的形式返回,利用这个,才可以解释拼接出来的HTML代码
    }
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

总结:在测试的过程中,会遇到一个问题,就是每次结果都会一闪而过,这种情况是要把提交按钮button的type设置成button,如果不设置会默认是submit.所以就会出现哪种情况 。


实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>制作一个在线明星相岫</title>
    <style>
        .box {
            margin: 50px auto;
            width: 500px;
            height: 650px;
            background-color: #efefef;
            border: 1px solid lightgray;
            text-align: center;
            color: #636363;
            box-shadow: 2px 2px 2px #999;
        }
        .box ul {
            margin: 0;
            padding: 0;
            overflow: hidden;
        }
        .box ul li {
            float: left;
            list-style-type: none;
            background-color: skyblue;
            margin-left: 20px;
            border-radius: 2px;
        }
        .box ul li a {
            display: block;
            width: 100px;
            height: 40px;
            line-height: 40px;
            color: white;
            text-decoration-line: none;
        }
        .box ul li:hover {
            background-color: coral;
        }
        .box .pic {
            width: 450px;
            height: 450px;
            border: 1px solid lightgray;
            margin: 20px auto;
        }
        .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="pic_info"></p>
</div>
<script>
    //获取页面中所有a标签
    let pic = document.getElementsByTagName('a');
    //利用a标签来循环标签
    for (let i=0; i< pic.length; i++) {
        pic[i].onclick = function (event) {
                //获取图片信息
            let picUrl = pic[i].href;//获取图片为i等于几的图片a标签
            let picInfo = pic[i].title;
            let picName = pic[i].innerHTML;//元素内容

            //获取页面中需要被替换的内容
            let img = document.getElementById('img');
            let p = document.getElementById('pic_info');

            //将对应的图片和信息增加到点位符处进行替换
            img.src = picUrl;
            p.innerHTML = picInfo+picName;

            return false;//禁用掉a的点击,默认行为。
        }
    }
</script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议