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 相关文章推荐
实用的Jquery选项卡TAB示例代码
Aug 28 Javascript
javascript实现数字验证码的简单实例
Feb 10 Javascript
js监控IE火狐浏览器关闭、刷新、回退、前进事件
Jul 23 Javascript
JS实现模拟百度搜索“2012世界末日”网页地震撕裂效果代码
Oct 31 Javascript
jQuery旋转木马式幻灯片轮播特效
Dec 04 Javascript
浅谈js中对象的使用
Aug 11 Javascript
Vue.js 中的 $watch使用方法
May 25 Javascript
mac中利用NVM管理不同node版本的方法详解
Nov 08 Javascript
Vue2.0 slot分发内容与props验证的方法
Dec 12 Javascript
layer弹出层全屏及关闭方法
Aug 17 Javascript
vuejs element table 表格添加行,修改,单独删除行,批量删除行操作
Jul 18 Javascript
超详细小程序定位地图模块全系列开发教学
Nov 24 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
一个odbc连mssql分页的类
2006/10/09 PHP
php除数取整示例
2014/04/24 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
PHP实现一维数组与二维数组去重功能示例
2018/05/24 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
js no-repeat写法 背景不重复
2009/03/18 Javascript
jQuery学习基础知识小结
2010/11/25 Javascript
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
当鼠标移动时出现特效的JQuery代码
2013/11/08 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
jquery代码实现多选、不同分享功能
2015/07/31 Javascript
freemarker判断对象是否为空的方法
2015/08/13 Javascript
原生JS轮播图插件
2017/02/09 Javascript
JavaScript算法教程之sku(库存量单位)详解
2017/06/29 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
基于JS实现带动画效果的流程进度条
2018/06/01 Javascript
NestJs 静态目录配置详解
2019/03/12 Javascript
JS数组reduce()方法原理及使用技巧解析
2020/07/14 Javascript
vue keep-alive实现多组件嵌套中个别组件存活不销毁的操作
2020/10/30 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
python3.3使用tkinter开发猜数字游戏示例
2014/03/14 Python
Python爬虫抓取手机APP的传输数据
2016/01/22 Python
python抓取并保存html页面时乱码问题的解决方法
2016/07/01 Python
django认证系统实现自定义权限管理的方法
2018/07/16 Python
Python简单获取二维数组行列数的方法示例
2018/12/21 Python
python爬取微信公众号文章的方法
2019/02/26 Python
Django操作session 的方法
2020/03/09 Python
keras打印loss对权重的导数方式
2020/06/10 Python
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
美国钻石商店:Zales
2016/11/20 全球购物
REN Clean Skincare官网:英国本土有机护肤品牌
2019/02/23 全球购物
企业面试题试卷附带答案
2015/12/20 面试题
公安机关纪律作风整顿个人剖析材料材料
2014/10/10 职场文书
2014年行政部工作总结
2014/11/19 职场文书
三八妇女节寄语
2015/02/27 职场文书