用js实现拼图小游戏

 更新时间:2021年03月14日 14:21:40   作者:我爱H5  
这篇文章主要为大家详细介绍了用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>

效果图

完成效果图

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

相关文章

  • JavaScript文档加载模式以及元素获取

    JavaScript文档加载模式以及元素获取

    这篇文章主要介绍了JavaScript文档加载模式以及元素获取,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • js 控制页面跳转的5种方法

    js 控制页面跳转的5种方法

    这篇文章介绍了js 控制页面跳转的5种方法,有需要的朋友可以参考一下
    2013-09-09
  • JS实现微信弹出搜索框 多条件查询功能

    JS实现微信弹出搜索框 多条件查询功能

    这篇文章主要介绍了JS实现微信弹出搜索框 多条件查询功能的实例代码,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-12-12
  • 根据出生日期自动取得星座的js代码

    根据出生日期自动取得星座的js代码

    最近这个项目需要注册时用户填写出生日期,然后自动取得星座,想想好像用后台代码太麻烦只好转而使用JavaScript。
    2010-07-07
  • 浅谈JavaScript中null和undefined

    浅谈JavaScript中null和undefined

    本文对比分析了javascript中的null和underfined的相同点和不同点,算是一个小小的总结,希望对大家学习javascript能够有所帮助。
    2015-07-07
  • JavaScript中async与await实现原理与细节

    JavaScript中async与await实现原理与细节

    这篇文章主要介绍了JavaScript中async与await实现原理与细节,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • js类式继承与原型式继承详解

    js类式继承与原型式继承详解

    这篇文章主要为大家详细介绍了js类式继承与原型式继承,感兴趣的小伙伴们可以参考一下
    2016-04-04
  • JavaScript this关键字指向常用情况解析

    JavaScript this关键字指向常用情况解析

    这篇文章主要介绍了JavaScript this关键字指向常用情况解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • JavaScript获取客户端IP的方法(新方法)

    JavaScript获取客户端IP的方法(新方法)

    这篇文章主要介绍了JavaScript获取客户端IP的方法(新方法)的相关资料,需要的朋友可以参考下
    2016-03-03
  • 手机端js和html5刮刮卡效果

    手机端js和html5刮刮卡效果

    这篇文章主要为大家详细介绍了手机端js和html5刮刮卡效果,刮开之后是随机生成的8位码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01

最新评论