javascript实现九宫格相加数值相等


Posted in Javascript onMay 28, 2020

本文实例介绍了javascript实现九宫格相加数值相等的对应方法,分享给大家供大家参考,具体内容如下

实现思路:

1、每个格子输入的数值必须为数字;

2、输入数值不能重复;

3、输入数值不能小于1或大于9;

4、数值不能为空;

5、相加方式共8个,分别为横向三个、纵向三个、两条对角线两个值。详情如下:

javascript实现九宫格相加数值相等

解释: 

       以每个格子所标记序号为标识:

      横向三个值:0-2,3-4,6-8;

      纵向三个值:[0,3,6]、[1,4,7]、[2,5,8];

      对角线两个值:[0,4,8]、[2,4,6]

实现过程:

很简单,和上面图片一样,点击提交按钮开始判断。

1、布局

html部分:

<div class="box">
 <input type="text">
 <input type="text">
 <input type="text">
 <input type="text">
 <input type="text">
 <input type="text">
 <input type="text">
 <input type="text">
 <input type="text">
 <button>提交</button>
</div>

css部分:通过css3中属性实现。

*{margin:0;padding:0;outline: none;}
html,body{
 height: 100%;
 display: flex;
 justify-content: center;
 align-items: center;
}
.box{
 position: relative;
 width: 250px;
 margin:0 auto;
}
input{
 text-align: center;
 font: 40px/60px 'Microsoft YaHei';
 width: 30%;
 float:left;
 box-sizing:border-box
}
button{
 position: absolute;
 bottom:-30px;
 left: 50%;
 margin-left: -30px;
 width: 40px;
}

2、接下来重点来了,js部分

之前已经说了js的实现的方法,一下是相关代码。

var oBtn=document.getElementsByTagName('button')[0],
aInp=document.getElementsByTagName('input');
function isNum(){

var aTemp=[];//创建临时函数,一次存放九宫格中的数字

for(i=0;i<aInp.length;i++)

{
 var val=Number(aInp[i].value);
 if(isNaN(val) || val<1 || val>9) {//判断当前输入框中数值是否是数字,是否小于1,是否大于9?
 
alert('1、您只能输入1-9纯数字;2、不能为空;');
 
return false;//若满足任意一条件直接退出函数不往下走
 }
 for(s=0;s<aTemp.length;s++){//循环判断九宫格内是否有重复数值,若是有重复直接推出函数
 
if(val == aTemp[s]){
 

alert('不能重复输入!');
 

return false;
 
}
 }
 //上述判断都满足,则将当前val的值放到数组aTemp中
 aTemp.push(val);

}

//n后面所跟数字与上面图片每个格子标记的数值一致

//将横向与纵向的值设置为0;其中n1-n3为横向三个值,n4-n6为纵向三个值

var n1=0,n2=0,n3=0,n4=0,n5=0,n6=0,

//n7、n8分别为两对角值
 n7=aTemp[0]+aTemp[4]+aTemp[8],
 n8=aTemp[2]+aTemp[4]+aTemp[6];

//横向:分段相加值

for(i=0;i<3;i++)n1+=aTemp[i];

for(i=3;i<6;i++)n2+=aTemp[i];

for(i=6;i<9;i++)n3+=aTemp[i];

//纵向:因为纵向是每隔两个格子相加一次,所以正好用取模方式计算



for(i=0;i<9;i++){
 (i%3==0) && (n4+=aTemp[i]);//当i%3=0时,分别为格子0、3、6
 (i%3==1) && (n5+=aTemp[i]);//当i%3=1时,分别为格子1、4、7
 (i%3==2) && (n6+=aTemp[i]);//当i%3=1时,分别为格子2、5、8

}

//判断n1-n8各值是否都相等,当然可以任意一个n判断,不局限只与n1的值相等

n1==n2 && n1==n3 && n1==n4 && n1==n5 && n1==n6 && n1==n7 && n1==n8 ? alert('恭喜您输入正确!') : alert('很遗憾您输入错误!');
}
oBtn.onclick=isNum;执行效果

1、当输入数值为非数字,或大于9,或小于0,或为空时

javascript实现九宫格相加数值相等

2、当输入重复数字时

javascript实现九宫格相加数值相等

3、当输入正确时

javascript实现九宫格相加数值相等

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
网页和浏览器兼容性问题汇总(draft1)
Jun 01 Javascript
js获取当前月的第一天和最后一天的小例子
Nov 18 Javascript
Extjs grid panel自带滚动条失效的解决方法
Sep 11 Javascript
5种处理js跨域问题方法汇总
Dec 04 Javascript
EasyUI中实现form表单提交的示例分享
Mar 01 Javascript
jQuery图片前后对比插件beforeAfter用法示例【附demo源码下载】
Sep 20 Javascript
js制作支付倒计时页面
Oct 21 Javascript
微信小程序 限制1M的瘦身技巧与方法详解
Jan 06 Javascript
js时间控件只显示年月
Jan 08 Javascript
nginx+vue.js实现前后端分离的示例代码
Feb 12 Javascript
vue-cli2.x项目优化之引入本地静态库文件的方法
Jun 19 Javascript
解决Echarts 显示隐藏后宽度高度变小的问题
Jul 19 Javascript
Javascript类型转换的规则实例解析
Feb 23 #Javascript
理解Javascript图片预加载
Feb 23 #Javascript
Bootstarp风格的toggle效果分享
Feb 23 #Javascript
javascript瀑布流式图片懒加载实例解析与优化
Feb 23 #Javascript
javascript瀑布流式图片懒加载实例
Jun 28 #Javascript
Bootstrap创建可折叠的组件
Feb 23 #Javascript
理解javascript定时器中的setTimeout与setInterval
Feb 23 #Javascript
You might like
php strtotime 函数UNIX时间戳
2009/01/14 PHP
php smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
解析PHP中empty is_null和isset的测试
2013/06/29 PHP
php实现读取内存顺序号
2015/03/29 PHP
php从数据库读取数据,并以json格式返回数据的方法
2018/08/21 PHP
JS俄罗斯方块,包含完整的设计理念
2010/12/11 Javascript
IE6/7/8中Option元素未设value时Select将获取空字符串
2011/04/07 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
2012/06/20 Javascript
JS短路原理的应用示例 精简代码的途径
2013/12/13 Javascript
js进行表单验证实例分析
2015/02/10 Javascript
javascript实现带下拉子菜单的导航菜单效果
2015/05/14 Javascript
javascript框架设计之类工厂
2015/06/23 Javascript
在Node.js应用中使用Redis的方法简介
2015/06/24 Javascript
Validform+layer实现漂亮的表单验证特效
2016/01/17 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
2016/12/05 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
JS实现动态添加DOM节点和事件的方法示例
2017/04/28 Javascript
javascript标准库(js的标准内置对象)总结
2018/05/26 Javascript
Vue 路由切换时页面内容没有重新加载的解决方法
2018/09/01 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
不刷新网页就能链接新的js文件方法总结
2020/03/01 Javascript
探究python中open函数的使用
2016/03/01 Python
django解决跨域请求的问题详解
2019/01/20 Python
浅谈python常用程序算法
2019/03/22 Python
全网首秀之Pycharm十大实用技巧(推荐)
2020/04/27 Python
利用css3画个同心圆示例代码
2017/07/03 HTML / CSS
HTML5边玩边学(3)像素和颜色
2010/09/21 HTML / CSS
瑞典香水、须后水和美容产品购物网站:Parfym-Klick.se
2019/12/29 全球购物
基层工作经历证明
2014/01/13 职场文书
我的梦想演讲稿1000字
2014/08/21 职场文书
心得体会的写法
2014/09/05 职场文书
个人股份合作协议书
2014/10/24 职场文书
师德先进个人事迹材料
2014/12/19 职场文书
大学文艺委员竞选稿
2015/11/19 职场文书