用js实现拼图小游戏
编程学习 2021-07-04 14:07www.dzhlxh.cn编程入门
这篇文章主要为大家详细介绍了用js实现拼图小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本文实例为大家分享了js实现拼图小游戏的具体代码,供大家参考,具体内容如下
一、js拼图是什么?
用js做得小游戏
二、使用步骤
1、先创建div盒子
<style>
div,body{
margin: 0;
height: 0;
}
#box{
width: 800px;
height: 800px;
background-color: burlywood;
position: relative;
}
#box div {
width: 200px;
height: 200px;
background: url(./imgs/bg.jpg) no-repeat;
position: absolute;
}
</style>
</head>
<body>
<div id="box"></div>
</body>
2.写js
<script>
// 获取标签
var box = document.getElementById("box");
var arrs = [];
// 循环创建16个对象,添加到数组中
for(var i = 0; i < 4; i++){
for(var j = 0; j < 4; j++){
var divNode = document.createElement("div")
divNode.style.top = 200 * i + "px"
divNode.style.left = 200 * j + "px"
// 创建对象
var pox = {
left: 200* i,
top:200*j,
}
// 创建好的对象添加到数组里
if( i !== 3 || j !== 3 ){
arrs.push(pox)
}else{
divNode.style.background = "none";
divNode.className = "space"
}
box.appendChild(divNode)
}
}
console.log(arrs);
// 随机抽取对象
for(var i = 0; i < 15; i++){
var ranNum = parseInt(Math.random() * (15 - i))
var x = arrs[ranNum].left;
var y = arrs[ranNum].top;
box.children[i].style.backgroundPosition = - x + "px "+ - y + "px";
arrs.splice(ranNum,1);
}
// 键盘事件
document.onkeyup = function(event) {
// 得到按的那个键
var key = event.keyCode
// 上
if (key == 38) {
var x = box.querySelector(".space").style.left
var y = box.querySelector(".space").style.top
for (var i = 0; i < 16; i++) {
if (parseInt(box.children[i].style.top) == parseInt(y) - 200 && parseInt(box.children[i].style.left) == parseInt(x)) {
box.children[i].style.top = y
box.querySelector(".space").style.top = parseInt(y) - 200 + "px"
}
}
// 下
}else if (key == 40) {
var x = box.querySelector(".space").style.left
var y = box.querySelector(".space").style.top
// 遍历所有小div,找到空白上面得那张 赋值 为y
for(var i = 0; i < 16; i++){
if (parseInt(box.children[i].style.top) == parseInt(y) + 200 && parseInt(box.children[i].style.left) == parseInt(x)) {
box.children[i].style.top = y
box.querySelector(".space").style.top = parseInt(y) + 200 + "px"
}
}
// 左
}else if (key = 38) {
var x = box.querySelector(".space").style.left
var y = box.querySelector(".space").style.top
for (var i = 0; i < 16; i++) {
if (parseInt(box.children[i].style.left) == parseInt(x) - 200 && parseInt(box.children[i].style.top) == parseInt(y)) {
box.children[i].style.left = x
box.querySelector(".space").style.left = parseInt(x) - 200 + "px"
}
}
// 右
}else if (key = 39) {
var x = box.querySelector(".space").style.left
var y = box.querySelector(".space").style.top
for (var i = 0; i < 16; i++) {
if (parseInt(box.children[i].style.left) == parseInt(x) + 200 && parseInt(box.children[i].style.top) == parseInt(y)) {
box.children[i].style.left = x
box.querySelector(".space").style.left = parseInt(x) + 200 + "px"
}
}
}
}
</script>
效果图
完成效果图
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
上一篇:微信小程序全局状态的深入讲解
下一篇:原生Js实现日历挂件
编程语言
- ThinkPad 笔记本如何调节LCD屏幕亮度
- Dreamweaver制作网页打开特效教程
- Win10 Mobile 10586升级后无限重启怎么办 硬重启帮您
- Win8系统提示音频设备有问题有一个或多个音频服
- Xbox One版Win10首个预览版9月份发布
- 如何在textarea文本输入区内实现换行
- Win10 Build 9901系统更新 预览版新版本下载
- McAfee Framework存在远程格式串处理漏洞
- Win10家庭版今日(7月30)正式在中国官方商城开卖
- Win10 Mobile预览版更新完10536.1000后才收到10536.100
- Win10 RS2更新了什么-Win10 RS2最终版本号1704首曝
- Windows7如何查看回收站对应的文件夹有哪些方法
- Win10让Charms栏回归桌面的方法教程
- 取消Windows XP系统开机启动画面的小技巧
- win8系统怎么下载安装USB百兆网卡?
- XP系统下磁盘空间变少了怎么办?XP系统磁盘空间