HTML+CSS+JS实现抓娃娃机游戏

目录
  • 前言
  • 效果
  • 地址
  • 布局
  • 总结

前言

前段时间去商场吃饭的时候看到一个有趣的娃娃机,一个密封的机器里底部放着一些被捆绑好的龙虾,可以买币去抓龙虾,抓到以后可以初加工费找附近的商家给做成龙虾大餐,感觉很有意思,把抓抓玩出了一个新的高度~

主要是抓到以后还可以出手工费进行烹饪,很吸引人,周边围观的人也很多,观察了一会发现。爪子的抓力不够,龙虾在水里还能移动,而且感觉每一个个头都不小,那小爪感觉根本抓不起来~~

到家后孩子就说爸爸你可不可以做一个娃娃机呢?

身为一个程序员,这点要求我感觉还是难不倒我,然后就突发奇想,给孩子在手机上做一个简易娃娃机。起初的想法是哄她开心,看到掘金最近有小游戏的活动,顺便分享给大家~~

效果

如上图,一个移动的抓手,以及几个礼物样品,还有左右移动,抓起按钮,素材很简单,但是做出来的效果还是有娃娃机的感觉的~

地址

代码托管地址在github在线预览地址资源路径不对无法访问,如果有需要源码的同学可以自行去git仓库获取~

布局

布局部分比较简单,直接贴代码了。可以根据自己的需求不同自定义即可~

<div class="page-portrait" id="page-portrait">
    <div id="pageContainer" class="page-container game-box">
      <div class="poster-main">
        <ul class="poster-list">
          <li class="item lw1"><img src="images/dx-lw1.png" alt=""></li>
          <li class="item lw2"><img src="images/dx-lw2.png" alt=""></li>
          <li class="item lw3"><img src="images/dx-lw3.png" alt=""></li>
          <li class="item lw4"><img src="images/dx-lw4.png" alt=""></li>
          <li class="item lw5"><img src="images/dx-lw5.png" alt=""></li>
          <li class="item lw6"><img src="images/dx-lw6.png" alt=""></li>
        </ul>
      </div>
      <div id="stop" class="button"></div>
      <div id="left" class="left-btn"></div>
      <div id="right" class="right-btn"></div>
      <div class="zhua-top">
        <span class="zhua-zuo"></span>
        <span class="zhua-zhu"></span>
        <div class="zhua zhuamove"></div>
      </div>
    </div>
</div>

css用到了几个运动处理了爪子的动效,如下方代码所示

@keyframes run {
  0% {
    background-image: url(../images/dx-zhua3.png);
  }
  25% {
    background-image: url(../images/dx-zhua2.png);
  }
  50% {
    background-image: url(../images/dx-zhua1.png);
  }
  75% {
    background-image: url(../images/dx-zhua2.png);
  }
  100% {
    background-image: url(../images/dx-zhua3.png);
  }
}
@keyframes zhuashou {
  0% {
    top: 360px;
    background-image: url(../images/dx-zhua1.png);
  }
  100% {
    top: 360px;
    background-image: url(../images/dx-zhua2.png);
  }
}
@keyframes zhuadown {
  0% {
    top: 138px;
    background-image: url(../images/dx-zhua1.png);
  }
  100% {
    top: 360px;
    background-image: url(../images/dx-zhua1.png);
  }
}
@keyframes zhua-slideUp {
  0% {
    top: 360px;
    background-image: url(../images/dx-zhua2.png);
  }
  100% {
    top: 138px;
    background-image: url(../images/dx-zhua2.png);
  }
}
@keyframes img-slideUp {
  0% {
    top: 23px;
  }
  100% {
    top: -200px;
  }
}

js代码创建了一个控制器类,处理事件以及动画效果的交替等。

var Carousel = {
    data: {
    result: 1
},
init: function () {
    Carousel.control();
},
stop: function () {
    $(".zhua").removeClass("zhuamove").addClass("zhuadown");
    $(".zhua-zhu").addClass("zhudown");
    var timer01 = setTimeout(function () {
        $(".zhua").removeClass("zhuadown").addClass("zhuashou");
        var timer03 = setTimeout(function () {
            $(".zhua").removeClass("zhuashou").addClass("zhuaup");
            $(".zhua-zhu").removeClass("zhudown").addClass("zhuup");
            $(".poster-list .lw" + (Carousel.data.result + 1)).addClass("img-slideUp");
        clearTimeout(timer03);
        timer03 = null;
        }, 800);
        var timer02 = setTimeout(function () {
            $(".zhua").removeClass("zhuaup").removeClass("zhuaup1");
            $(".zhua-zhu").removeClass("zhuup");
            clearTimeout(timer02);
            timer02 = null;
            alert("恭喜您抽中一等奖~");
            Carousel.start();
        }, 2500);
        clearTimeout(timer01);
        timer01 = null;
    }, 1000);
},
start: function () {
    $(".zhua").addClass("zhuamove");
    $(".zhua").removeClass("zhuadown").removeClass("zhuaup1").removeClass("zhuaup");
    $(".poster-list .item").removeClass("img-slideUp").removeClass("img-slideOutUp");
},
zhuaMove: function (num) {
    switch (num) {
        case 0:
        $(".zhua-top").animate({
            left: -145,
        },300);
        break;
        case 1:
        $(".zhua-top").animate({
            left: 0,
        },300);
        break;
        case 2:
        $(".zhua-top").animate({
            left: 145,
        },300);
        break;
    }
},
control: function () {
    $("#left").on("click", function () {
        Carousel.data.result--;
    if (Carousel.data.result <= 0) {
        Carousel.data.result = 0;
    }
    Carousel.zhuaMove(Carousel.data.result);
    });
    $("#stop").click(Carousel.stop);
        $("#right").on("click", function () {
            Carousel.data.result++;
            if (Carousel.data.result >= 2) {
                    Carousel.data.result = 2;
            }
            Carousel.zhuaMove(Carousel.data.result);
        });
    },
};

总结

css现在有很多的新的特性可以解决我们工作中遇到的动效以及兼容问题,有心的同学可以多多查阅文档,写一写自己感兴趣的小demo,或者给孩子做一个小游戏来玩,何尝不是一件有成就的事呢~

到此这篇关于HTML+CSS+JS实现抓娃娃机游戏的文章就介绍到这了,更多相关JS抓娃娃机内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • js实现简单翻牌小游戏

    本文实例为大家分享了js实现简单翻牌小游戏的具体代码,供大家参考,具体内容如下 1.简介 非常简单的一个网络消消乐翻牌小游戏的实现,代码量较少,不过遇到的bug和自行开发的步骤十分有纪念意义. 2.核心代码块 生成随机数列,确定图片随机分布 function getImgIndex(is){    var index = parseInt(Math.random()*8)+1;          if(is[index] < 2){              is[index]++;      

  • JavaScript实现打地鼠游戏

    本文实例为大家分享了JavaScript实现打地鼠游戏的具体代码,供大家参考,具体内容如下 游戏说明: 点击"开始游戏"按钮,在图中随机产生老鼠,老鼠消失前单击老鼠进行击打,打中一次即可获得100的积分,没有打中老鼠,扣取100积分 css模块 <style> #div0{ text-align: center; width: 1360px; height: 600px; margin: 60px auto; background-image: url("imag

  • JavaScript实现气球打字的小游戏

    目录 一.实现效果 1.定义球的类 二.源码仓库和效果 一.实现效果 1.定义球的类 气球类中我们需要对26个字符进行处理 this.arr = "abcdefghijklmnopqrstuvwxyz".split(""); 生成一个随机字母 this.index = parseInt(Math.random() * this.arr.length); // 定义随机字符 this.str = this.arr[this.index]; 生成一个div标签并对图片进

  • 原生JS实现H5转盘游戏的示例代码

    目录 1. 基础的页面布局(index.html) 1.1 html布局 1.2 css布局(style.css) 2. 工具函数(用于调整概率) 3. 传参及接收值配置 4. dom 操作方法及具体逻辑处理 5. FAQ(注意事项) 本文是真实的实战项目,可以直接拿去用 —— 转盘抽奖 可以自由调整概率,你也可以成为黑心商家 项目效果是这样滴:视频链接 1. 基础的页面布局(index.html) 这里不做过多解释了,就是一些页面布局 大家直接复制粘贴过去用就行(是不是很贴心~) 1.1 ht

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

    去年为联通制作双十一活动,做四个小游戏:'配对消消乐'.移动拼图.抓娃娃.倒计时. 现在先做来分享一下制作抓娃娃游戏时的经验 先上效果图 游戏规则:在指定时间内抓到上图四张卡片为挑战成功. 现在直接说游戏主要内容:娃娃滚动.爪子向下抓取.抓到卡片 废话不多说直接上代码!(此样式是根据需求而定) <!--布局样式--> <div class="game"> <!--爪子--> <div class="paw"> <

  • HTML+CSS+JS实现抓娃娃机游戏

    目录 前言 效果 地址 布局 总结 前言 前段时间去商场吃饭的时候看到一个有趣的娃娃机,一个密封的机器里底部放着一些被捆绑好的龙虾,可以买币去抓龙虾,抓到以后可以初加工费找附近的商家给做成龙虾大餐,感觉很有意思,把抓抓玩出了一个新的高度~ 主要是抓到以后还可以出手工费进行烹饪,很吸引人,周边围观的人也很多,观察了一会发现.爪子的抓力不够,龙虾在水里还能移动,而且感觉每一个个头都不小,那小爪感觉根本抓不起来~~ 到家后孩子就说爸爸你可不可以做一个娃娃机呢? 身为一个程序员,这点要求我感觉还是难不倒

  • 利用原生JS实现欢乐水果机小游戏

    简介: 玩家点击某个押注物品则在该物品上下注.点击开始则游戏开始,如果没有下注则不能开始游戏. 游戏中的物品有八中,分别为:苹果.西瓜.柠檬.橙子.铃铛.77.双星.BAR. 在放行游戏区左右方为押注区,每种物品下方有加减号按钮,每次点 击加号增加一个筹码注金,反之减号就减少一个筹码注金 开始: 开始键 奖励:GOOD LUCK 由于这个时低配版的,我就没有按照原版的写进去,就是中了GOOD LUCK直接获得15分. 出于好耍,本人想起了小时候玩过的水果机,js也学了一会儿了,就想用它写一个简单

  • html+css+js实现别踩白板小游戏

    目录 背景简介 一.思路分析 二.页面搭建 2.1 HTML层 2.2 CSS层 2.3 JS层 2.3.1获取元素 2.3.2创建每一行div元素 2.3.3点击事件函数封装 2.3.4 方块移动函数封装 2.3.5 游戏开始 三.总结 背景简介 别踩白板这个游戏相信大家都玩过,这个是基于HTML5打造的简单小游戏,在PC端和移动端都能够运行,适应多种平台,今天我们使用原生JS搭配JQuery构建这个小游戏--别踩白板. 一.思路分析 整体页面是一个大的矩形,长宽比例大概是3:2,然后游戏开始

  • 基于HTML+CSS+JS实现纸牌记忆游戏

    目录 知识点 HTML 用户界面 CSS 部分 一些基本样式 纸牌的样式 分数面板的样式 祝贺面板的样式 动画 媒体查询 JavaScript 部分 洗牌功能 开始新游戏的功能 显示卡片的功能 当卡片匹配时的功能 当卡片不匹配时的功能 暂时禁用卡片的功能 启用卡片并禁用匹配的卡片的功能 计算玩家的动作的功能 显示游戏的时间 再次游戏功能 总结 这节实验我们将使用 HTML.CSS 和 JavaScript 制作纸牌记忆游戏. 让我们开始吧! 在线演示戳这里 知识点 animation-durat

  • js实现简单拼图小游戏

    本文实例为大家分享了js实现简单拼图小游戏的具体代码,供大家参考,具体内容如下 游戏很简单,拼拼图,鼠标拖动一块去和另一块互换.语言是HTML+js,注释写的有不明白的可以留言问一下. 截图 代码区 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <style type="text/

  • jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】

    本文实例讲述了jQuery+vue.js实现的九宫格拼图游戏.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { margin: 0; padding: 0; } /*#piclist { width: 600p

  • JS+canvas实现的五子棋游戏【人机大战版】

    本文实例讲述了JS+canvas实现的五子棋游戏.分享给大家供大家参考,具体如下: 运行效果图: html代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>五子棋</title> <link rel="stylesheet" type="text/css" href="css

  • js实现大转盘抽奖游戏实例

    本文实例讲述了js实现大转盘抽奖游戏.分享给大家供大家参考.具体实现方法如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <hea

  • 使用vue.js编写蓝色拼图小游戏

    之前在网上看到<蓝色拼图>这款小游戏,作者是用jquery写的.于是便考虑能不能用vue.js优雅简单的编写出来呢? Later equals never!说干就干.首先理解游戏的规则:第一关为1*1的方块,第二关为2*2以此类推 该图为第三关3*3的方块.点击一个小方块,该方块和它相邻的方块的的颜色会从黄色变为蓝色,全部变为蓝色就过关了. 现在规则清楚了,开动吧! /*style*/ .game_bg{ background: #333; width: 600px; height: 600p

随机推荐