最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jQuery+vue.js實現(xiàn)的九宮格拼圖游戲完整實例【附源碼下載】

 更新時間:2017年09月12日 11:25:30   作者:ITzhongzi  
這篇文章主要介紹了jQuery+vue.js實現(xiàn)的九宮格拼圖游戲,結(jié)合完整實例形式分析了jQuery結(jié)合vue.js針對圖片的相關操作技巧,需要的朋友可以參考下

本文實例講述了jQuery+vue.js實現(xiàn)的九宮格拼圖游戲。分享給大家供大家參考,具體如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    * {
      margin: 0;
      padding: 0;
    }
    /*#piclist {
      width: 600px;
      height: 600px;
      background-color: green;
    }*/
    .nitem {
      /*width: 200px;*/
      /*height: 200px;*/
      float: left;
      background: url(img/meinv.jpg) 0px 0px no-repeat;
      -webkit-background-size: 600px 600px;
      background-size: 600px 600px;
      font-size: 33px;
      color: red;
      font-weight: bold;
      cursor: pointer;
    }
    /*.nitem:nth-child(2){
      background-position: -200px 0;
    }
    .nitem:nth-child(3){
      background-position: -400px 0;
    }
    .nitem:nth-child(4){
      background-position: 0px -200px;
    }
    .nitem:nth-child(5){
      background-position: -200px -200px;
    }
    .nitem:nth-child(6){
      background-position: -400px -200px;
    }
    .nitem:nth-child(7){
      background-position: 0px -400px;
    }
    .nitem:nth-child(8){
      background-position: -200px -400px;
    }
    .nitem:nth-child(9){
      background-position: -400px -400px;
    }*/
    .fn-clear {
      clear: both;
      height: 0;
      line-height: 0px;
      font-size: 0px;
    }
  </style>
</head>
<body>
<div id="appbox" :style="{ width:width+'px',height:height+'px' }">
  <div id="piclist">
    <div class="nitem"
       v-for="(item,index) in itemlist"
       :class="{remove : index === 0}"
       :index="index "
       v-bind:style="{
        'backgroundPosition':-px(index)+'px -' + py(index) + 'px',
         width : width / rows + 'px',
         height : height / cols + 'px'}">{{index}}
    </div>
  </div>
</div>
</body>
<script src=js/jquery-1.9.1.min.js></script>
<script src=js/vue.min.js></script>
<script>
  var olen = 0, oi = 0, cindex = 0, oa = new Array(), oindex = 0, listarray = new Array();
  var vm = new Vue({
    el: "#appbox",
    data: {
      itemlist: [],
      rows: 3,
      cols: 3,
      width: 600,
      height: 600,
    },
    methods: {
      px(index){
        return (index % this.rows) * (this.width / this.rows)
      },
      py (index){
        return parseInt((index / this.cols)) * (this.height / this.cols);
      }
    }
  });
  for (var i = 0; i < vm.rows * vm.cols; i++) {
    vm.itemlist.push(i);
  }
  function getrow(index) {
    return parseInt(index / vm.cols);
  }
  function getcols(index) {
    return index % vm.rows;
  }
  function getBound(index) {
    var left = index - 1;
    var right = index + 1;
    var top = index - vm.rows;
    var bottom = index + vm.rows;
    var len = vm.itemlist.length; //總長度
    var currentRow = getrow(index);
    var currentCol = getcols(index);
    var roundArr = new Array();
    if (left >= 0 && left < len && getrow(left) == currentRow) {
      roundArr.push(left);
    }
    if (right >= 0 && right < len && getrow(right) == currentRow) {
      roundArr.push(right);
    }
    if (top >= 0 && top < len && getcols(top) == currentCol) {
      roundArr.push(top);
    }
    if (bottom >= 0 && bottom < len && getcols(bottom) == currentCol) {
      roundArr.push(bottom);
    }
    return roundArr;
  }
  function box_switch(i, j) {
    var iobj = $('#piclist .nitem').eq(i);
    var jobj = $('#piclist .nitem').eq(j);
    var tobj = iobj.clone();
    jobj.after(tobj);
    iobj.replaceWith(jobj);
  }
  vm.$nextTick(function () {
    $('.remove').css({
      background: 'none',
      backgroundColor: 'green'
    });
  });
  function box_rand(times) {
    for (var i = 0; i < times; i++) {
      oindex = $('.remove').index();
      oa = getBound(oindex);
      olen = oa.length;
      oi = Math.floor(Math.random() * olen);
      cindex = oa[oi];
      box_switch(cindex, oindex);
    }
    listarray.length = 0;
    $.each($('.nitem'), function (i, item) {
      listarray.push($(item).attr('index'));
    });
    if (listarray.join(',') == vm.itemlist.join(',')) {
      box_rand(times);
    }
  }
  $(function () {
    //打亂圖片
    box_rand(20);
    $('.nitem').on('click  ', function () {
      var cindex = $(this).index();
      var oindex = $('.remove').index();
      var oRound = getBound(oindex); //空盒子四周的索引
      if ($.inArray(cindex, oRound) < 0) { //不在
        return false;
      } else {
        box_switch(oindex, cindex);
        var listArray = new Array();
        $.each($('.nitem'), function (i, item) {
          listArray.push($(item).attr('index'));
        })
        if (listArray.join(',') == vm.itemlist.join(',')) {
          alert('success')
        } else {
          console.log('失敗')
        }
      }
    });
  })
</script>
</html>

附:完整實例代碼點擊此處本站下載。

PS:這里再為大家推薦兩款相關圖片類工具供大家參考:

在線美女拼圖游戲:
http://tools.jb51.net/games/pintu

在線圖片添加/解密隱藏信息(隱寫術)工具:
http://tools.jb51.net/aideddesign/img_add_info

更多關于jQuery相關內(nèi)容感興趣的讀者可查看本站專題:《jQuery圖片操作技巧大全》、《jQuery表格(table)操作技巧匯總》、《jQuery切換特效與技巧總結(jié)》、《jQuery擴展技巧總結(jié)》、《jQuery常用插件及用法總結(jié)》、《jQuery常見經(jīng)典特效匯總》及《jquery選擇器用法總結(jié)

希望本文所述對大家jQuery程序設計有所幫助。

相關文章

  • jQuery中判斷對象是否存在的方法匯總

    jQuery中判斷對象是否存在的方法匯總

    本文給大家匯總了下在jQuery中判斷對象是否存在的方法以及用原生javascript實現(xiàn)的方法,有相同需求的小伙伴可以來參考下。
    2016-02-02
  • jQuery 插件 將this下的div輪番顯示

    jQuery 插件 將this下的div輪番顯示

    將this下的div輪番顯示 dname指定需要執(zhí)行此動作的元素,如果沒有指定dname,將默認全部子元素
    2009-04-04
  • jQuery實現(xiàn)仿Alipay支付寶首頁全屏焦點圖切換特效

    jQuery實現(xiàn)仿Alipay支付寶首頁全屏焦點圖切換特效

    這篇文章主要介紹了jQuery實現(xiàn)仿Alipay支付寶首頁全屏焦點圖切換特效,涉及jQuery插件jquery.kinMaxShow的相關使用技巧,非常具有實用價值,需要的朋友可以參考下
    2015-05-05
  • 自制輕量級仿jQuery.boxy對話框插件代碼

    自制輕量級仿jQuery.boxy對話框插件代碼

    最近再做價值中國微博,從用戶體驗的角度,將很多常用的window.alert或者window.confirm之類比較生硬死板冷不丁的提示改為彈出層的方式實現(xiàn)。
    2010-10-10
  • 程序員必知35個jQuery 代碼片段

    程序員必知35個jQuery 代碼片段

    jQuery如今已經(jīng)成為Web開發(fā)中最流行的JavaScript庫,通過jQuery和大量的插件,你可以輕松實現(xiàn)各種絢麗的效果。本文將為你介紹一些jquery實用的技巧,希望可以幫助你更加高效地使用jQuery。
    2015-11-11
  • jQuery實現(xiàn)可編輯表格并生成json結(jié)果(實例代碼)

    jQuery實現(xiàn)可編輯表格并生成json結(jié)果(實例代碼)

    這篇文章主要介紹了 jquery實現(xiàn)可編輯表格并生成json結(jié)果,該代碼解析和加載功能都用前端js實現(xiàn),簡化了后臺代碼邏輯,非常不錯,具有參考借鑒加載,需要的朋友可以參考下
    2017-07-07
  • json格式的javascript對象用法分析

    json格式的javascript對象用法分析

    這篇文章主要介紹了json格式的javascript對象用法,結(jié)合實例形式總結(jié)分析了javascript針對json格式數(shù)據(jù)操作的常見技巧,需要的朋友可以參考下
    2016-07-07
  • jquery實現(xiàn)經(jīng)典的淡入淡出選項卡效果代碼

    jquery實現(xiàn)經(jīng)典的淡入淡出選項卡效果代碼

    這篇文章主要介紹了jquery實現(xiàn)經(jīng)典的淡入淡出選項卡效果代碼,通過簡單的jQuery鼠標事件及鏈式操作實現(xiàn)淡入淡出效果,非常簡單實用,需要的朋友可以參考下
    2015-09-09
  • jquery實現(xiàn)圖片跟隨鼠標的實例

    jquery實現(xiàn)圖片跟隨鼠標的實例

    這篇文章主要介紹了 jquery實現(xiàn)圖片跟隨鼠標的實例的相關資料,希望通過本文能幫助到大家實現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-10-10
  • Jquery實現(xiàn)textarea根據(jù)文本內(nèi)容自適應高度

    Jquery實現(xiàn)textarea根據(jù)文本內(nèi)容自適應高度

    本文給大家分享的是Jquery實現(xiàn)textarea根據(jù)文本內(nèi)容自適應高度,這些在平時的項目中挺實用的,所以抽空封裝了一個文本框根據(jù)輸入內(nèi)容自適應高度的插件,這里推薦給小伙伴們。
    2015-04-04

最新評論

潼关县| 额敏县| 奇台县| 正镶白旗| 潞西市| 江华| 宁晋县| 秦皇岛市| 高碑店市| 南宫市| 嘉义市| 雷山县| 城市| 巴楚县| 黑水县| 普宁市| 田东县| 霞浦县| 温宿县| 天峨县| 东辽县| 威远县| 蕲春县| 迁安市| 阳西县| 青阳县| 固阳县| 眉山市| 忻州市| 仙桃市| 昌江| 尉氏县| 桓仁| 资溪县| 秦安县| 鄱阳县| 连州市| 府谷县| 万年县| 江油市| 新绛县|