美文网首页web前端学习互联网科技Web前端之路
找不到计算器?那就自己用javascript写一个吧

找不到计算器?那就自己用javascript写一个吧

作者: 烟雨丿丶蓝 | 来源:发表于2017-10-27 19:47 被阅读52次
web前端群,189394454,有视频、源码、学习方法等大量干货分享

知识点: 布局的巧妙的运用,js运算判断,类型转换,符号与值的判断,赋值的类型,点击判断等。
👇html代码:

        <div id="jsq">
            <h2>计算器</h2>
            <div class="num" id="result">0</div>
            <div class="but">
                <ul>
                    <li onclick="command(7)">7</li>
                    <li onclick="command(8)">8</li>
                    <li onclick="command(9)">9</li>
                    <li class="tool">←</li>
                    <li class="tool" onclick="clearZero('j')">C</li>
                    <li onclick="command(4)">4</li>
                    <li onclick="command(5)">5</li>
                    <li onclick="command(6)">6</li>
                    <li class="tool">*</li>
                    <li class="tool" onclick="tools('/','g')">÷</li>
                    <li onclick="command(3)">3</li>
                    <li onclick="command(2)">2</li>
                    <li onclick="command(1)">1</li>
                    <li class="tool" onclick="tools('+','g')">+</li>
                    <li class="tool" onclick="tools('-','g')">-</li>
                    <li>0</li>
                    <li>00</li>
                    <li onclick="dian('g')">.</li>
                    <li class="tool">%</li>
                    <li class="tool2" onclick="eq('j')">=</li>
                </ul>
            </div>
            <p>欢迎作用轻量级计算器^_^</p>
        </div>

👇css代码:

        <style type="text/css">
            *{
                margin:0;/*外边距*/
                padding:0;/*内*/
            }
            body{
                background:#000000;
            }
            #jsq{
                width:540px;
                margin:80px auto;/*上下 左右*/
                box-shadow:0px 0px 10px #ffffff;
                border-radius:5px;
            }
            #jsq h2{
                color:white;
                text-indent:30px;
                font-weight:100;
                font-size:18px;
                font-family:'Microsoft Yahei';
                line-height:55px;
            }
            #jsq .num{
                border:1px solid yellow;
                background:#FFF7B2;
                width:480px;
                margin:0 auto;
                line-height:50px;
                font-size:50px;
                text-align:right;
                border-radius:5px;
            }
            #jsq .but{
                width:490px;
                height:310px;
                margin:35px auto 0px;
            }
            #jsq .but ul li{
                color:white;
                list-style-type:none;
                width:80px;
                height:60px;
                background:#212121;
                float:left;/*向左看齐*/
                margin:9px;
                box-shadow:0 0 5px white;
                border-radius:5px;
                text-align:center;
                line-height:60px;
                font-size:22px;
                font-family:'微软雅黑';
                cursor:pointer;
            }
            #jsq .but ul li.tool{
                background:#EF616E;
            }
            #jsq .but ul li.tool2{
                background:#FFAF3F;
            }
            #jsq p{
                color:white;
                font-size:12px;
                text-indent:30px;
                line-height:50px;
            }
        </style>

👇javascript代码:

        <script type="text/javascript">
            var resultDom = document.getElementById('result');
            var dianmark = true; //真的
            var mark = false;
            function command(num){
                
                var str = resultDom.innerText;
                str = (str=="0"?"":str)
                str= str+num; //字符串连接
                document.title = str;
                resultDom.innerText = str;
                mark = true;
                play(num);
            }

            //点击小数点
            function dian(m){
                if(dianmark){
                    var num = resultDom.innerText;
                    num = num+".";
                    resultDom.innerText = num;
                    dianmark = false;
                }
                play(m);
            }
            //点击运算符
            function tools(op,m){
                if(mark){
                    var num = resultDom.innerText;
                    num = (num =="0"?"":num) //如果。。。?那么就。。:否则。。
                    resultDom.innerText = num+op;
                    mark = false;
                }
            }
            
            //计算等于
            function eq(m){
                var result = resultDom.innerText;
                var r = eval(result);
                resultDom.innerText = r;
                mark = true;
                 play(m)
            }
            
            //清空
            function clearZero(m){
                resultDom.innerText = '0';
                mark = true;
                dianmark = true;
                play(m)
            }
            function play(num){
                var music = document.getElementById('music');
                    music.src = "wav/"+num+".wav";
                    music.play();
            }
        </script>

相关文章

  • 找不到计算器?那就自己用javascript写一个吧

    知识点: 布局的巧妙的运用,js运算判断,类型转换,符号与值的判断,赋值的类型,点击判断等。?html代码: ?c...

  • javascript简易计算器

    十五分钟用 JavaScript 基础写一个简易计算器 + 思路详解阅读 1220收藏 772017-04-12 ...

  • 用python写一个单一计算器程序

    用python写一个单一计算器程序:

  • Python超速入门-004 玩转计算器

    Python有个很实用的功能,就是可以当做计算器实用,如果你需要进行简单的数学计算,手头刚好找不到计算器,那就打开...

  • 那就写吧

    那就写吧 写不好还写不坏么?大脑中一直在重复着这句话,写不好,难道还写不坏么? 最近的情绪一直很负面,就像自己做了...

  • 那就写吧

    最近一段时间,确实有点忙,写文的时间和心态,也有些调整不过来。 影响心态的,除了家里事,也有其他原因。 贝价顽强而...

  • ES6

    历史 ECMAScrit 是96年 网景公司吧javascript提交给 欧洲计算器制作联合会 版本 97年1.0...

  • 2019-10-19

    如果没有梦想,那就造造一个吧。写自传吧,好好认识我自己。

  • 爱,那就写吧

    此刻我最想写的一句话便是:如果时光可以倒流,我愿与文字为伴,相守相爱,相痴相恋。像张亚凌老师那么爱的执着,像蒋坤元...

  • 那就,开始写吧

    在这个世界上,许多人对自己的生活现状不满意。 那么,改变的希望在那里? 我认为只有两点,一是文明其精神,二是野蛮其...

网友评论

    本文标题:找不到计算器?那就自己用javascript写一个吧

    本文链接:https://www.haomeiwen.com/subject/ktpdpxtx.html