注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

米欧互联

No matter what you want to express……

 
 
 

日志

 
 
关于我

{ note: ‘不会编程的设计狮不是好科研狗’ }

网易考拉推荐

简易计算器程序js代码  

2014-03-16 14:18:53|  分类: js |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

效果图: http://imgsrc.baidu.com/forum/pic/item/b105c113495409236a66f5c49058d109b2de49b5.jpg
简易计算器程序js代码 - 湖小叶叶 - 米欧光影工作室
 
http://tieba.baidu.com/p/2923532115   2楼;

代码如下:

<style>
#panel{width:200px; font-size:16px; font-family:Consolas;}
#panel input{float:right; width:40px;height:40px;margin:5px;}
#panel div{
width:178px; height:40px; lin-height:20px;
margin:5px; padding:5px; border:1px solid #ccc;
}
</style>
<div id='panel'></div>
<script>
window.onload=function(){
var s=['<div id="p"></div>'], i=10, a=["=", ".", "+", "-", "*", "/"],

f=function(e){s.push('<input type="button" value="' +e+ '" />')};

while(i-- >0 || a.length)i%3 || f(a.pop()),f(i<0?a.pop():i);

panel.innerHTML=s.join(""), panel.onclick=function(e,v){
if(v=(e=e||event, e.target||e.srcElement).value)
p.innerHTML=v=="="?eval(p.innerHTML):p.innerHTML+v;
}
}
</script>





代码分析版:(少量修改)

<style>
#panel{width:200px; font-size:16px; font-family:Consolas;
overflow:hidden;border:1px solid #aaa;}
#panel input{float:right; width:40px;height:40px; margin:5px;}
#panel div{
width:178px; height:40px; lin-height:20px;
margin:5px; padding:5px; border:1px solid #ccc;
}
</style>
<div style='width:800px; margin:0 auto;'>
<b>简易js计算器:</b>
<pre>
缺陷
1.算式太长会出去;
2.输入错误后只好重来,没法改错;
3.没法接收键盘输入;


</pre>
</div>

<div id='panel'></div>
<script>
function n(s){console.log(">> " + s)}//调试用函数

window.onload=function(){
var s=['<div id="p"></div>'], i=10, a=["=", ".", "+", "-", "*", "/"],

f=function(e){s.push('<input type="button" value="' +e+ '" />')};//向s尾部推入input

while(i-- >0 || a.length){ //n(i+': '+s);//当 i大于0 或 a数组有数据时,循环继续
i%3 || f(a.pop()); //i被3整除时,执行f(a.pop()),从a后端取出1个数据
f(i<0?a.pop():i); //i>=0时,把i输出; 当i<0时,从a中后端取出1个数据
}

panel.innerHTML=s.join("");//s数组的元素用""连接后返回一个字符串,并赋值给panel div

panel.onclick=function(e,v){//传入2个参数,一个事件e,一个value????
//n('进入时:'+e+' ' + v) //v一直是undefined
if(v=(e=e||event, e.target||e.srcElement).value){
//n('进入后:' + e+' ' + v); ////v是value
p.innerHTML=(v=="=")?eval(p.innerHTML):p.innerHTML+v;//遇到=就计算;
}
}
}
</script>





----------------
  评论这张
 
阅读(168)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017