首页 > web前端 > js教程 > 正文

实例分享jQuery实现拼图小游戏

小云云
发布: 2017-12-31 16:12:47
原创
2472人浏览过

本文主要为大家带来一篇jquery实现拼图小游戏(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。

小熊维尼拼图

jQuery代码实现拼图小游戏,鼠标选中拼块,用上下左右键移动拼块。

photo1photo2photo3

photo4photo5photo6

photo7photo8photo9

html代码


<p id="box-p">
  <!--走不通时的提示!-->
  <p id="tips">
    <p>\(╯-╰)/ 哎呦,走不通啦!</p>
  </p>
  <p id="container">
    <p class="row">
      <p class="unit"><img src="http://yn321.cn3v.net/images/weini_part_01.png" alt="photo1"/></p>
      <p class="unit"><img src="http://yn321.cn3v.net/images/weini_part_02.gif" alt="photo2"/></p>
      <p class="unit"><img src="http://yn321.cn3v.net/images/weini_part_03.gif" alt="photo3"/></p>
    </p>
    <p class="row">
      <p class="unit"><img src="http://yn321.cn3v.net/images/weini_part_04.gif" alt="photo4"/></p>
      <p class="unit"><img src="http://yn321.cn3v.net/images/weini_part_05.gif" alt="photo5"/></p>
      <p class="unit"><img src="http://yn321.cn3v.net/images/weini_part_06.gif" alt="photo6"/></p>
    </p>
    <p class="row">
      <p class="unit"><img src="http://yn321.cn3v.net/images/weini_part_07.gif" alt="photo7"/></p>
      <p class="unit"><img src="http://yn321.cn3v.net/images/weini_part_08.gif" alt="photo8"/></p>
      <p class="unit"><img src="http://yn321.cn3v.net/images/weini_part_09.gif" alt="photo9"/></p>
    </p>
  </p>
</p
登录后复制


#box-p {
  position: relative;
  width: 508px;
  height: 631px;
  margin: 0 auto;
}

#container {
  width: 508px;
  height: 631px;
  margin: 0 auto;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  border: 1px solid #d5e0e6;
}

#container > .row {
  display: -webkit-box;
  white-space: nowrap;
}

#container > .row > .unit {
  width: 169px;
  height: 209px;
  display: inline-block\9;/*兼容IE9/10*/
  vertical-align: top\9;/*兼容IE9/10*/
  box-sizing: border-box;
  border: 1px solid rgba(7, 157, 239, 0);
}

#container > .row > .unit.move {
  border: 1px solid rgba(7, 157, 239, 1);
}

#tips {
  width: 200px;
  height: 50px;
  background: rgb(152, 206, 50);
  position: absolute;
  z-index: 5;
  top: -50px;
  left: calc(50% - 100px);
  opacity: 0;
}

#tips > p {
  margin: 0;
  line-height: 50px;
  text-align: center;
  color: white;
}
.directions{
  width:50%;
  margin:0 auto;
  text-align: center;
  line-height: 30px;
  color: white;
  background-color: #a7cbf0;
}
登录后复制

jquery代码


$("#container>.row>.unit>img").each(function () {
  $(this).click(function (event) {
    event.stopPropagation();
    $(".unit").removeClass("move");
    $(this).parent(".unit").addClass("move");
  })
});
move(".move","#tips");
function move(className,idName) {
  /* 提示信息 */
  function tipsAlert(idName) {
    $(idName).animate({top: "0", opacity: "1"}, 500);
    setTimeout(function () {
      $(idName).animate({top: "-50px", opacity: "0"}, 800);
    }, 1000)
  }
  /* 上下左右按键移动 */
  $(document).keydown(function (e) {
    var code = e.keyCode;
    if (code > 40 || code < 37) {
      return false;
    }
    var prev = $(className)[0].previousElementSibling;//选中元素前置位元素是否存在,以此判断元素是否还可以左右移动
    var next = $(className)[0].nextElementSibling;//选中元素后置位元素是否存在,以此判断元素是否还可以左右移动
    var paprev = $(className).parent()[0].previousElementSibling;//选中元素父级前置位元素是否存在,以此判断元素是否还可以上下移动
    var panext = $(className).parent()[0].nextElementSibling;//选中元素父级后置位元素是否存在,以此判断元素是否还可以上下移动
    var index = $(className).index();//根据选中元素的索引值,来确定上下移动时对换的位置
    var movenp = $(className).next()[0];//以此确定上下对换元素添加方式
    var movepp = $(className).prev()[0];//以此确定上下对换元素添加方式
    switch (code) {
      case 37://左
        if (prev) {
          $(className).insertBefore(prev);
        } else {
          tipsAlert(idName);
        }
        break;
      case 38://上
        if (paprev) {
          var exchangeTop = $(paprev).children()[index];
          $(className).insertBefore(exchangeTop);
          if (movenp) {
            $(exchangeTop).insertBefore(movenp);
          } else {
            $(exchangeTop).insertAfter(movepp)
          }

        } else {
          tipsAlert(idName);
        }
        break;
      case 39://右
        if (next) {
          $(className).insertAfter(next);
        } else {
          tipsAlert(idName)
        }
        break;
      case 40://下
        if (panext) {
          var exchangeBottom = $(panext).children()[index];
          $(className).insertBefore(exchangeBottom);
          if (movenp) {
            $(exchangeBottom).insertBefore(movenp);
          } else {
            $(exchangeBottom).insertAfter(movepp)
          }
        } else {
          tipsAlert(idName);
        }
        break;

    }
  });


}
登录后复制

相关推荐:

ViiTor实时翻译
ViiTor实时翻译

AI实时多语言翻译专家!强大的语音识别、AR翻译功能。

ViiTor实时翻译 116
查看详情 ViiTor实时翻译

实例分享jQuery+vue.js实现的九宫格拼图游戏

用javascript实现web拼图游戏

有关拼图小游戏的文章推荐

以上就是实例分享jQuery实现拼图小游戏的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号