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 02 Javascript
javascript 设为首页与加入收藏兼容多浏览器代码
Jan 11 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
Dec 29 Javascript
Javascript中对象继承的实现小例
May 12 Javascript
编写高质量JavaScript代码的基本要点
Mar 02 Javascript
jQuery基于扩展简单实现倒计时功能的方法
May 14 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
Oct 09 Javascript
详解Vue 2.0封装axios笔记
Jun 22 Javascript
Angular.js项目中使用gulp实现自动化构建以及压缩打包详解
Jul 19 Javascript
详解jquery选择器的原理
Aug 01 jQuery
使用 JavaScript 创建并下载文件(模拟点击)
Oct 25 Javascript
jquery实现的放大镜效果示例
Feb 24 jQuery
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
PHP error_log()将错误信息写入一个文件(定义和用法)
2013/10/25 PHP
php下载excel无法打开的解决方法
2013/12/24 PHP
thinkphp中session和cookie无效的解决方法
2014/12/19 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
PHP有序表查找之插值查找算法示例
2018/02/10 PHP
PHP基于cookie实现统计在线人数功能示例
2019/01/16 PHP
WordPress JQuery处理沙发头像
2009/06/22 Javascript
清空上传控件input file的值
2010/07/03 Javascript
jQuery boxy弹出层插件中文演示及使用讲解
2011/02/24 Javascript
js动态设置鼠标事件示例代码
2013/10/30 Javascript
基于JavaScript代码实现pc与手机之间的跳转
2015/12/23 Javascript
整理关于Bootstrap列表组的慕课笔记
2017/03/29 Javascript
Bootstrap实现基于carousel.js框架的轮播图效果
2017/05/02 Javascript
jQuery操作之效果详解
2017/05/19 jQuery
VUE中使用Vue-resource完成交互
2017/07/21 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
2017/08/14 Javascript
chosen实现省市区三级联动
2018/08/16 Javascript
微信小程序日历效果
2018/12/29 Javascript
JQuery事件委托原理与用法实例分析
2019/05/13 jQuery
微信小程序动态显示项目倒计时
2019/06/20 Javascript
[03:46]DAC趣味视频-中文考试.mp4
2017/04/02 DOTA
[55:03]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.20
2020/11/20 DOTA
用Python编写web API的教程
2015/04/30 Python
解读! Python在人工智能中的作用
2017/11/14 Python
python中return的返回和执行实例
2019/12/24 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
2021/01/28 Python
DC Shoes荷兰官方网站:美国极限运动品牌
2019/10/22 全球购物
年度考核自我鉴定
2013/11/09 职场文书
校园活动策划书范文
2014/01/10 职场文书
3.15国际消费者权益日主题活动活动总结
2014/03/16 职场文书
公司贷款承诺书
2014/05/30 职场文书
竞选班长演讲稿500字
2014/08/22 职场文书
大学生个人学年总结
2015/02/15 职场文书
毕业生入职感言
2015/07/31 职场文书
排查Tomcat进程假死的问题
2022/05/06 Servers
TS 类型兼容教程示例详解
2022/09/23 Javascript