jQuery实现可以计算进制转换的计算器


Posted in jQuery onOctober 19, 2020

本文实例为大家分享了jQuery实现可以计算进制转换的计算器,供大家参考,具体内容如下

在案例8的基础上增加了进制转换功能

动画效果:

jQuery实现可以计算进制转换的计算器

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>计算器</title>
 <script src="../jquery.min.js"></script>
 <style>
 *{
  margin: 0;
  padding: 0;
 }
 #calculator{
  position: relative;
  margin: 50px auto;
  padding: 5px;
  width: 230px;
  height: 316px;
  background: rgb(190,210,224);
 }
 #screen{
  width: 230px;
  height: 60px;
  background: rgb(153,153,153);
  border-radius: 5px;
  text-align: right;
  overflow: hidden;
 }
 #txt1{
  height: 20px;
  padding-top: 10px;
  font-size: 10px;
 }
 #txt2{
  height: 30px;
  font-size: 20px;
 }
 #num{
  float:left;
  width: 130px;
 }
 #num input{
  width: 40px;
  height: 40px;
  margin-top: 3px;
 }
 #del{
  float:right;
  width: 70px;
  height: 30px;
 }
 #del input{
  margin-top: 4px ;
  width: 70px;
  height: 31px;
 }
 #operator{
  margin-top: 5px ;
  float:right;
  width: 70px;
  height: 180px;
 }
 #operator input{
  width: 70px;
  height: 31px;
  margin-top: 4px ;
 }
 #converter{
  float:right;
  margin-top: 5px;
  width: 70px;
 
 
 }
 #converter .show{
  position: absolute;
  bottom: 5px;
  width: 70px;
  height: 30px;
  font-size: 10px;
 }
 #converter div{
  display: none;
  position: absolute;
  left: 150px;
  top: 100px;
 }
 #converter div input{
  width: 85px;
  height: 25px;
  margin-top: 5px;
 }
 </style>
</head>
<body>
<div id="calculator">
 <div id="screen">
 <p id="txt1"></p>
 <p id="txt2"></p>
 </div>
 
 <div id="workspace">
 <div id="num">
  <input type="button" value="7">
  <input type="button" value="8">
  <input type="button" value="9">
  <input type="button" value="4">
  <input type="button" value="5">
  <input type="button" value="6">
  <input type="button" value="1">
  <input type="button" value="2">
  <input type="button" value="3">
  <input type="button" value="Cle">
  <input type="button" value="0">
  <input type="button" value=".">
  <input type="button" value="A">
  <input type="button" value="B">
  <input type="button" value="C">
  <input type="button" value="D">
  <input type="button" value="E">
  <input type="button" value="F">
 </div>
 <div id="del">
  <input type="button" value="←">
 </div>
 <div id="operator">
  <input type="button" value="+">
  <input type="button" value="-">
  <input type="button" value="*">
  <input type="button" value="/">
  <input type="button" value="=">
 </div>
 <div id="converter">
  <div>
  <input type="button" value="十转十六进制" name="1">
  <input type="button" value="十转八进制" name="2">
  <input type="button" value="十转二进制" name="3">
  <input type="button" value="十六转十进制" name="4">
  <input type="button" value="八转十进制" name="5">
  <input type="button" value="二转十进制" name="6">
  </div>
  <input class="show" type="button" value="进制转换">
 
 </div>
 
 </div>
</div>
 
<script>
 $(function(){
 var i=0;//i为清空标志,i=1时需要清空#txt2的数据
 //获取输入的数字
 $("#num input").click(function () {
  //先判断#txt2中是否保存着上次计算的结果,如果是则将其清空
  if (i===1){
  $("#txt2").text("");
  }
  //保证数字以正确的格式显示
  //使用switch语句实现
 
  switch ($(this).val()){
  case "Cle":
   $("#txt2").text("");
 
   break;
  case ".":
   if ($("#txt2").text().indexOf(".") != -1) {
   break;
   }else{$("#txt2").append($(this).val());}
   break;
  default:
   if ($("#txt2").text() === "0") {
   $("#txt2").text($(this).val());
   }else{
   $("#txt2").append($(this).val());
   }
  }
  i=0;//将清空标志设为0
 });
 //获取运算符
 $("#operator input:not(:last)").click(function () {
  $("#txt1").text($("#txt2").text()+$(this).val());
  $("#txt2").text("");
 });
 //按下“=”键进行计算
 $("#operator input").last().click(function () {
  //使用eval()函数
  //$("#txt2").text(eval($("#txt1").text()+$("#txt2").text()));
  //使用常规方法
  var str=$("#txt1").text();
  var n1=parseFloat(str);
  var n2=parseFloat($("#txt2").text());
  var cal=str[str.length-1];
  switch (cal){
  case "+":
   $("#txt2").text( n1+n2);
   break;
  case "-":
   $("#txt2").text( n1-n2);
   break;
  case "*":
   $("#txt2").text( n1*n2);
   break;
  case "/":
   $("#txt2").text( n1/n2);
   break;
  default: break;
  }
  $("#txt1").text( "");
  i=1;//将清空标志设为1
 });
 //按下“←”回删数字
 $("#del").click(function () {
  var str=$("#txt2").text();
  if (i==0) {
  $("#txt2").text(str.slice(0, str.length - 1));
  }
 });
 //按下“进制转换”,出现几种进制转换按钮
 $("#converter .show").click(function () {
  $("#converter div").toggle();
  $("#operator").toggle();
 });
 //进行进制转换
 $("#converter div input").click(function () {
  var index=this.name;
  var n=$("#txt2").text();
  switch (index){
  case "1":
   n=parseInt(n,10);
   $("#txt2").text(n.toString(16));
   break;
  case "2":
   n=parseInt(n,10);
   $("#txt2").text(n.toString(8));
   break;
  case "3":
   n=parseInt(n,10);
   $("#txt2").text(n.toString(2));
   break;
  case "4":
   n=parseInt(n,16);
   $("#txt2").text(n.toString(10));
   break;
  case "5":
   n=parseInt(n,8);
   $("#txt2").text(n.toString(10));
   break;
  case "6":
   n=parseInt(n,2);
   $("#txt2").text(n.toString(10));
   break;
 
  }
  i=1;//将清空标志设为1
 });
 });
</script>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
Mar 21 jQuery
jQuery获取table下某一行某一列的值实现代码
Apr 07 jQuery
jquery仿京东商品放大浏览页面
Jun 06 jQuery
jQuery为某个div加入行样式
Jun 09 jQuery
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
jQuery EasyUI结合zTree树形结构制作web页面
Sep 01 jQuery
jQuery图片加载失败替换默认图片方法汇总
Nov 29 jQuery
jQuery中each方法的使用详解
Mar 18 jQuery
jQuery使用each遍历循环的方法
Sep 19 jQuery
jQuery动态生成的元素绑定事件操作实例分析
May 04 jQuery
jquery获取input输入框中的值
Nov 13 jQuery
Jquery如何使用animation动画效果改变背景色的代码
Jul 20 jQuery
jQuery实现计算器功能
Oct 19 #jQuery
jQuery实现推拉门效果
Oct 19 #jQuery
jQuery实现图片切换效果
Oct 19 #jQuery
jQuery实现回到顶部效果
Oct 19 #jQuery
jQuery实现放大镜案例
Oct 19 #jQuery
jQuery插件实现图片轮播效果
Oct 19 #jQuery
jquery插件实现轮播图效果
Oct 19 #jQuery
You might like
桌面中心(四)数据显示
2006/10/09 PHP
PHP脚本的10个技巧(2)
2006/10/09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(四)
2014/06/23 PHP
extjs 学习笔记(三) 最基本的grid
2009/10/15 Javascript
js单向链表的具体实现实例
2013/06/21 Javascript
jQuery 属性选择器element[herf*='value']使用示例
2013/10/20 Javascript
浅谈jQuery异步对象(XMLHttpRequest)
2014/11/17 Javascript
JavaScript实现的多种鼠标拖放效果
2015/11/03 Javascript
JS在onclientclick里如何控制onclick的执行
2016/05/30 Javascript
JavaScript学习笔记整理_用于模式匹配的String方法
2016/09/19 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
2017/02/09 Javascript
Node.js查找当前目录下文件夹实例代码
2017/03/07 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
2017/07/24 Javascript
Bootstrap一款超好用的前端框架
2017/09/25 Javascript
对vue里函数的调用顺序介绍
2018/03/17 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
2019/04/04 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
layui监听select变化,以及设置radio选中的方法
2019/09/24 Javascript
JavaScript Dom 绑定事件操作实例详解
2019/10/02 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
[07:49]2014DOTA2国际邀请赛 Newbee夺冠后采访xiao8坦言奖金会上交
2014/07/23 DOTA
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
分享15个最受欢迎的Python开源框架
2014/07/13 Python
利用Python3分析sitemap.xml并抓取导出全站链接详解
2017/07/04 Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
2018/05/22 Python
python实现批量图片格式转换
2020/06/16 Python
全方位了解CSS3的Regions扩展
2015/08/07 HTML / CSS
英国最大的独立家具零售商:Furniture Village
2016/09/06 全球购物
小型女装店的创业计划书
2014/01/09 职场文书
庆中秋节主题活动方案
2014/02/03 职场文书
2014年民政工作总结
2014/11/26 职场文书
工程资料员岗位职责
2015/04/13 职场文书
SQL注入的实现以及防范示例详解
2021/06/02 MySQL
2022漫威和DC电影上映作品
2022/04/05 欧美动漫
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers