vue制作抓娃娃机的示例代码


Posted in Javascript onApril 17, 2020

去年为联通制作双十一活动,做四个小游戏:‘配对消消乐'、移动拼图、抓娃娃、倒计时。 现在先做来分享一下制作抓娃娃游戏时的经验 先上效果图

vue制作抓娃娃机的示例代码

游戏规则:在指定时间内抓到上图四张卡片为挑战成功。 现在直接说游戏主要内容:娃娃滚动、爪子向下抓取、抓到卡片 废话不多说直接上代码!(此样式是根据需求而定)

<!--布局样式-->
<div class="game">
  <!--爪子-->
  <div class="paw">
   <div class="pawer"></div>
   <div class="pawerPic">
   <img src="./../assets/img/zhuashou.png" class="lose" />
   <div class="win" v-if="gzShow2">
    <img :src="t_img" />
   </div>
   </div>
  </div>
  <!--区域-->
  <div class="area">
   <!--娃娃滚动-->
   <div id="pack" ref="pack">
   <div id="sel1" class="father" ref="imgs">
    <img
    v-for="img in imgs"
    :class="img.isSuc ? 'yes' : 'no'"
    :src="img.img"
    :key="img.id"
    :alt="img.isSuc"
    />
   </div>
   </div>
  </div>
  <span class="button" @click="zhua"></span>
  </div>
// css 
.game {
  width: 80%;
  height: 730px;
  background: url(./../assets/img/interface_1.png) no-repeat;
  background-size: 100%;
  animation: bg infinite 0.6s;
  position: relative;
  top: -60px;
  left: 0;
  z-index: 2;
  .paw {
  position: relative;
  top: 10%;
  }
  .pawer {
  width: 20px;
  background: rgb(170, 219, 254);
  height: 10px;
  position: absolute;
  top: 20px;
  left: 51%;
  margin-left: -15px;
  border-left: 1px solid rgba(42, 59, 156, 0.7);
  border-right: 1px solid rgba(42, 59, 156, 0.7);
  }
  .pawerPic {
  width: 95px;
  // height:85px;
  position: absolute;
  top: 30px;
  left: 51%;
  margin-left: -55px;
  img {
   width: 100%;
  }
  .win {
   position: absolute;
   bottom: -60px;
  }
  }
  .area {
  width: 100%;
  height: 500px;
  // overflow:hidden;
  position: absolute;
  // top:40px;
  left: 0;
  bottom: 40px;
  }
  /*娃娃滚动*/
  #pack {
  width: 80%;
  white-space: nowrap;
  overflow: hidden;
  position: absolute;
  bottom: 60px;
  left: 10%;
  #sel1 {
   display: block;
   img {
   display: block;
   width: 130px;
   height: 150px;
   float: left;
   margin-left: 20px;
   }
  }
  }
  .button {
  display: block;
  width: 130px;
  height: 90px;
  background: url(./../assets/img/button.png) no-repeat;
  background-size: 100%;
  position: absolute;
  bottom: 20px;
  left: 40%;
  }
 }

接下来就是卡片滚动,设置定时器,给卡片模块设置transform 让卡片从右向左匀速移动。

mounted() {
 this.wawa();
 this.talon = $(".pawerPic").offset().left + 100; // 首先获取爪子的位置(这里是固定的)
 }
wawa() {
  var pack = this.$refs.pack,
  width = $("#pack").width(),
  imgsWidth = (this.imgs.length * width) / 3,
  initLeft = 0;

  this.chatTimer = setInterval(function() {
  initLeft++;

  if (imgsWidth - initLeft < width + 60) {
   initLeft = 0;
  }
  $("#sel1").css({
   width: imgsWidth,
   transform: "translateX(-" + initLeft + "px)"
  });
  }, 15);
 },

再接着就是点击按钮控制爪子上下移动抓取卡片。 首先固定爪子的位置,上图代码中mounted里面的talon,然后设置爪子到下面的终止距离(差不多能够到卡片),为爪子设置动画改变top值,拉长绳子改变height值(因为爪子和绳子是分开的)。 当爪子到达下面时,获取每个卡片的位置,与爪子当前位置作比较,看爪子是否在某个卡片的指定抓取区域内来判断是否抓到卡片,然后上升。 上代码!!!


代码全部贴上了,很多功能都是因为自己的需求去加的。 第一次写文章,可能具体的表述不清楚。

到此这篇关于vue制作抓娃娃机的示例代码的文章就介绍到这了,更多相关vue 抓娃娃机内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
JavaScript 高级篇之函数 (四)
Apr 07 Javascript
javascript将数组插入到另一个数组中的代码
Jan 10 Javascript
js实现的切换面板实例代码
Jun 17 Javascript
按下回车键指向下一个位置的一个函数代码
Mar 10 Javascript
js实现的二级横向菜单条实例
Aug 22 Javascript
jquery根据td给相同tr下其他td赋值的实现方法
Oct 05 Javascript
jQuery autoComplete插件两种使用方式及动态改变参数值的方法详解
Oct 24 Javascript
vue中使用vue-router切换页面时滚动条自动滚动到顶部的方法
Nov 28 Javascript
JS实现换肤功能的方法实例详解
Jan 30 Javascript
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
May 12 jQuery
WebSocket的简单介绍及应用
May 23 Javascript
javascript 高级语法之继承的基本使用方法示例
Nov 11 Javascript
Vue+tracking.js 实现前端人脸检测功能
Apr 16 #Javascript
tracking.js实现前端人脸识别功能
Apr 16 #Javascript
electron 如何将任意资源打包的方法步骤
Apr 16 #Javascript
vue中keep-alive内置组件缓存的实例代码
Apr 16 #Javascript
详解Nuxt内导航栏的两种实现方式
Apr 16 #Javascript
javascript设计模式 ? 职责链模式原理与用法实例分析
Apr 16 #Javascript
vue下canvas裁剪图片实例讲解
Apr 16 #Javascript
You might like
使用 php4 加速 web 传输
2006/10/09 PHP
台湾中原大学php教程孙仲岳主讲
2008/01/07 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
php 数组动态添加实现代码(最土团购系统的价格排序)
2011/12/30 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
JS 判断undefined的实现代码
2009/11/26 Javascript
jquery dialog键盘事件代码
2010/08/01 Javascript
jQuery hover 延时器实现代码
2011/03/12 Javascript
判断一个变量是数组Array类型的方法
2013/09/16 Javascript
原生js事件的添加和删除的封装
2014/07/01 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
理解javascript中的MVC模式
2016/01/28 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
2016/08/30 Javascript
nodejs利用http模块实现银行卡所属银行查询和骚扰电话验证示例
2016/12/30 NodeJs
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
AngularJS基于http请求实现下载php生成的excel文件功能示例
2018/01/23 Javascript
Vue 中使用vue2-highcharts实现top功能的示例
2018/03/05 Javascript
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
使用pm2自动化部署node项目的方法步骤
2019/01/28 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
layer父页获取弹出层输入框里面的值方法
2019/09/02 Javascript
详解Python当中的字符串和编码
2015/04/25 Python
详解python之简单主机批量管理工具
2017/01/27 Python
Python随机生成手机号、数字的方法详解
2017/07/21 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
2019/01/29 Python
简单了解python元组tuple相关原理
2019/12/02 Python
美国亚洲时尚和美容产品的一站式网上商店:Stylevana
2019/09/05 全球购物
文明餐桌行动实施方案
2014/02/19 职场文书
篝火晚会主持词
2014/03/25 职场文书
放飞梦想演讲稿
2014/05/05 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
自愿离婚协议书2015
2015/01/26 职场文书
中班上学期个人总结
2015/02/12 职场文书
骆驼祥子读书笔记
2015/06/26 职场文书