用js實現(xiàn)拼圖小游戲
更新時間:2021年03月14日 14:21:40 作者:我愛H5
這篇文章主要為大家詳細(xì)介紹了用js實現(xiàn)拼圖小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了js實現(xiàn)拼圖小游戲的具體代碼,供大家參考,具體內(nèi)容如下
一、js拼圖是什么?
用js做得小游戲
二、使用步驟
1、先創(chuàng)建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>
// 獲取標(biāo)簽
var box = document.getElementById("box");
var arrs = [];
// 循環(huán)創(chuàng)建16個對象,添加到數(shù)組中
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"
// 創(chuàng)建對象
var pox = {
left: 200* i,
top:200*j,
}
// 創(chuàng)建好的對象添加到數(shù)組里
if( i !== 3 || j !== 3 ){
arrs.push(pox)
}else{
divNode.style.background = "none";
divNode.className = "space"
}
box.appendChild(divNode)
}
}
console.log(arrs);
// 隨機(jī)抽取對象
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>
效果圖

完成效果圖

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Ajax+FormData+javascript實現(xiàn)無刷新表單信息提交
在前端開發(fā)中ajax,formdata和js實現(xiàn)無刷新表單信息提交非常棒,接下來通過本文給大家介紹Ajax+FormData+javascript實現(xiàn)無刷新表單信息提交的相關(guān)資料,需要的朋友可以參考下2016-10-10
javascript 開發(fā)之百度地圖使用到的js函數(shù)整理
這篇文章主要介紹了javascript 開發(fā)之百度地圖使用到的js函數(shù)整理的相關(guān)資料,需要的朋友可以參考下2017-05-05
JS Array.from()將偽數(shù)組轉(zhuǎn)換成數(shù)組的方法示例
這篇文章主要介紹了JS Array.from()將偽數(shù)組轉(zhuǎn)換成數(shù)組的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
uniapp使用webview嵌入vue頁面及通信實現(xiàn)方式
項目中有需要嵌入其他H5的頁面的業(yè)務(wù)需求,這篇文章主要給大家介紹了關(guān)于uniapp使用webview嵌入vue頁面及通信實現(xiàn)方式的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-01-01
全面了解構(gòu)造函數(shù)繼承關(guān)鍵apply call
下面小編就為大家?guī)硪黄媪私鈽?gòu)造函數(shù)繼承關(guān)鍵apply call。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-07-07

