<!doctype html>
<html>
<head>
<!--声明当前页面的编码集-->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>计算器</title>
<!-- 关键字和描述是用在像百度搜索之类的搜索的引擎上的 -->
<meta name="keywords" content="计算器" />
<meta name="description" content="基于java开发的计算器的百度轻应用" />
<!-- css/js -->
<!-- css层叠样式表 -->
<!-- class=.cac这里的高度height:460px;是需要去掉的, 将高度固定了, 再在div里面添加东西的时候会露出在外面 --> <style type="text/css">
*{margin:0px;padding:0px}
body{background:#e2e2e2;font-size:12px;font-family:"verdana";} /*cac start*/
.cac{width:830px;background:#f2f2f2;margin:40px auto;padding:10px}
.cac .c_title{font-family:"仿宋";padding:10px 0px 10px 10px;font-size:24px;color:#000;cursor:move;}
/* 控制输入框里面的字体 */
.cac .c_show .c_txt{width:810px;height:42px;border:none;outline:none;font-size:34px;font-family:"verdana";color:#999;line-height:42px;text-align:right;padding-right:20px;}
.cac .c_key ul{border:1px solid snow;margin:14px 0;}
.cac .c_key ul li{border:1px solid snow;list-style:none;width:140px;height:65px;background:#e2e2e2;float:left;font-size:32px;text-align:center;margin:11px;line-height:65px;cursor:pointer;}
.cac .c_key ul li:hover{background:snow;}
.cac .c_key .c_tools{background:#738fd8;}
.cac .c_key .c_equ{background:#f90;}
/*cac end*/ .clear{clear:both;}
</style>
</head>
<body> <!-- cac start -->
<div class="cac">
<div class="c_title">计算器</div>
<div class="c_show">
<input id="c_result" type="text" class="c_txt" value="0" onfocus="this.blur()"/>
</div>
<div class="c_key">
<ul>
<li onclick="command(7);">7</li>
<li onclick="command(8);">8</li>
<li onclick="command(9);">9</li>
<li class="c_tools" onclick="backspace('j')">←</li>
<li class="c_tools" onclick="clearzero();">C</li>
<li onclick="command(4);">4</li>
<li onclick="command(5);">5</li>
<li onclick="command(6);">6</li>
<li class="c_tools" onclick="tools('*','g');">×</li>
<li class="c_tools" onclick="tools('/','g');">÷</li>
<li onclick="command(1);">1</li>
<li onclick="command(2);">2</li>
<li onclick="command(3);">3</li>
<li class="c_tools" onclick="tools('+','g');">+</li>
<li class="c_tools" onclick="tools('-','g');">-</li>
<li onclick="command(0);">0</li>
<li onclick="command('00');">00</li>
<li onclick="dot('g');">.</li>
<li class="c_tools" onclick="tools('%','g');">%</li>
<li class="c_equ" onclick="equ('j');">=</li>
<!-- 哪里浮动在哪里清除 -->
<div class="clear"></div>
</ul>
</div>
<div class="c_welcome">欢迎使用计算器</div>
</div>
<!-- cac end --> <br>
<div id="audDom"></div> <script type="text/javascript">
//运算的代码, 获取输入框的内容
var resultDom = document.getElementById("c_result");
//操作符加锁
var operate = true;
var xop = true;
var afequ = true; //点击播放声音
function command(num) {
//点击等号之后要进行一次清空
if(!afequ) {
clearzero();
}
//获取输入框中value的值
var str = resultDom.value;
//在这里加一个判断, 如果第一位是0, 就用""填充
str = str=="0"?"":str;
//拼接数字, 然后赋值给文本框
str+=num;
resultDom.value = str;
//锁住操作符
operate = true;
//播放音效
play(num);
} //点击小数点
function dot(m) {
//点击等号之后要进行一次清空
if(!afequ) {
clearzero();
}
if(xop) {
var num = resultDom.value;
num = num + ".";
resultDom.value = num;
xop = false;
}
play(m);
} //点击操作符的方法, m相当于num
function tools(op,m) {
//点击等号之后要进行一次清空
if(!afequ) {
afequ = true;
}
if(operate) {
var num = resultDom.value;
num = (num=="0"?"":num);
//拼接操作符
resultDom.value = num + op;
operate = false;
xop = true;
}
//播放音效
play(m);
} //点击等号, 计算等号
function equ(m) {
play(m);
var result = resultDom.value;
var r = eval(result);
resultDom.value = r;
operate = true;
var r = resultDom.value;
afequ = false;
xop = r.indexof(".")==-1?true:false;
} //清空
function clearzero() {
resultDom.value = 0;
operate = true;
xop = true;
afequ = true;
} //退格键的实现
function backspace(m) {
play(m);
if(resultDom.value==0) {
operate = true;
xop = true;
}
else if(resultDom.value!=0) {
var str = resultDom.value;
var str1 = str.substring(0,str.length-1);
resultDom.value = (str1==""?0:str1);
}
} //播放音效
function play(num) {
var adDom = document.getElementById("audDom");
//用参数来组合src的地址
adDom.innerHTML = "<embed src='wav/"+num+".wav' width='0' height='0'></embed>";
}
</script> </body>
</html>

音频文件的截图

利用css和javascript实现简单的计算器的更多相关文章

  1. 利用CSS、JavaScript及Ajax实现图片预加载的三大方法

    预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...

  2. 利用CSS、JavaScript及Ajax实现图片预加载的三大方法(转)

    预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...

  3. 利用CSS、JavaScript及Ajax实现图片预加载的三大方法及优缺点分析

    预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布 ...

  4. JavaScript+HTML,简单的计算器实现

    成功进化到程序猿快一年多了, 还没写过计算器, 正好今天比较闲,随手写了个计算器,最简单的实现,核心是eval()方法,把字符串作为JS代码处理,把输入的信息拼接成字符串,点等号执行代码得到结果,出异 ...

  5. 用JavaScript制作简单的计算器

    <html > <head> <title>简单计算器</title> <style type="text/css"> ...

  6. jQuery/javascript实现简单网页计算器

    <html> <head> <meta charset="utf-8"> <title>jQuery实现</title> ...

  7. 一起学HTML基础-利用CSS和JavaScript制作一个切换图片的网页

    由于个人原因,不详细写步骤 思路: 一.布局 二.制作图片区和按钮区的div及颜色.边框.背景属性等 三.用PS将四张图片剪切到同一个尺寸,重叠放置在图片切换区,透明度设置为0 四.点击对应按钮时,将 ...

  8. 利用css+原生js制作简易钟表

    利用css+原生js制作简单的钟表.效果如下所示 实现该效果,分三大块:html.javascript.css html部分html部分比较简单,定义一个clock的div,内部有原点.时分秒针.日期 ...

  9. JAVASCRIPT实现简单计算器

    最终效果如下图-2,有bug:就是整数后点击%号结果正确,如果小数后面点击%的话结果就错误!其他都正常,求指点:input的value是string类型的,在JS中改如何正确处理下图-1中的if部分? ...

随机推荐

  1. appium 中文API 集

    参考:https://testerhome.com/topics/3711 根据appium 1.4.13.1版本整理,1.5弃用了find by name 所以更新了下如有错误请多多指正谢谢@lyl ...

  2. zufe oj 引水工程( 巧妙地把在i建水设为e[0][i])

    引水工程 时间限制: 3 Sec  内存限制: 128 MB提交: 11  解决: 6[提交][状态][讨论版] 题目描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程,是新中国成立以来 ...

  3. SqlBulkCopy 快速插入数据

    [转]本文来自http://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlbulkcopy(v=vs.80).aspx 此代码用于 ...

  4. appium 3-31626 toast识别

    1.toast弹窗,普通方式不能获取 例如使用getPageSource是无法找到toast的信息,uiautomatorViewer加载页面时间较长,也很难采集到toast信息 2.通过curl命令 ...

  5. ESXI5.5设置主机的时间自动同步服务 NTP

    背景:现在公司的很多线上服务也都通过虚拟化来实现,最近遇到一个小问题,虚拟机上的时间不准确.原来是虚拟机会主动同步宿主机时间,一般虚拟机中都安装vmware tool工具,这个工具会自动和宿主机进行时 ...

  6. 超链接中 utm_source, utm_medium 等参数的含义是什么?

    作者:张溪梦 Simon链接:https://www.zhihu.com/question/48724061/answer/122730629来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非 ...

  7. mysql存储过程中遍历数组字符串的两种方式

    第一种:多次使用substring_index()的方法 DELIMITER $$ DROP PROCEDURE IF EXISTS `array`$$ CREATE  PROCEDURE `arra ...

  8. tf.matmul函数和tf.multiply函数

    tf.matmul(a,b,transpose_a=False,transpose_b=False, adjoint_a=False, adjoint_b=False, a_is_sparse=Fal ...

  9. 第3章 文件I/O(4)_dup、dup2、fcntl和ioctl函数

    5. 其它I/O系统调用 (1)dup和dup2函数 头文件 #include<unistd.h> 函数 int dup(int oldfd); int dup2(int oldfd, i ...

  10. IO基础知识

    传统的IO是阻塞的,BIO----基于流的模式,数据与Stream直接通信 NIO非阻塞的基于快的模式.数据与channel不直接交换数据,而是通过buffer进行数据交换. 基于文件的IO 基于网络 ...