响应式2048小游戏(支持手机端)

简介: 响应式2048小游戏(支持手机端)

项目演示地址:https://wanghao221.github.io/game/2048-Responsive.html(GitHub可能加载较慢,请耐心等待)


先看一下手机端运行效果,拖黑色地方会移动窗口,但拖白色没事。

20210131020220908.gif


HTML代码:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>Wanghao | 2048 Responsive</title>
    <link rel="stylesheet" type="text/css" href="css/style.css" />
    <script src="https://use.fontawesome.com/a3bbfa8680.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/hammer.js/2.0.8/hammer.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
  </head>
  <body>
    <div id="mobilewrap">
      <div id="container">
        <div class="score">
          <p> <span class="title">Score</span><span class="scorefield">0</span></p>
        </div>
        <div class="newgame">
          <div class="button"><span>New Game</span></div>
        </div>
        <div class="grid">
          <div class="row">
            <div class="base"></div>
            <div class="base"></div>
            <div class="base"></div>
            <div class="base"></div>
          </div>
          <div class="row">
            <div class="base"></div>
            <div class="base"></div>
            <div class="base"></div>
            <div class="base"></div>
          </div>
          <div class="row">
            <div class="base"></div>
            <div class="base"></div>
            <div class="base"></div>
            <div class="base"></div>
          </div>
          <div class="row">
            <div class="base"></div>
            <div class="base"></div>
            <div class="base"></div>
            <div class="base"></div>
          </div>
          <script src="js/script.js"></script>
        </div>
        <div class="tiles"></div>
        <div class="over"><span>Game Over</span></div>
        <div class="won"><span class="winner">You win!</span><span class="bestscore">BEST SCORE: </span><span class="numbest">
          </span></div>
      </div><a href="https://blog.csdn.net/qq_44273429/" target='_blank'><i class="fa fa-twitter" aria-hidden="true"></i></a>
    </div>
  </body>
</html>

CSS代码

@import url("https://fonts.googleapis.com/css?family=Roboto:300,400,500");
@import url("https://fonts.googleapis.com/css?family=Montserrat");
html, body {
  margin: 0;
  background: #111;
  min-height: 100%;
  font-family: "Montserrat", sans-serif;
}
#mobilewrap {
  position: absolute;
  width: 100%;
  height: 100%;
}
#mobilewrap a {
  position: absolute;
  bottom: 5vh;
  right: 5vh;
}
#mobilewrap a .fa-twitter {
  font-size: 5vh;
  color: #FF5722;
}
#container {
  position: absolute;
  width: 50vh;
  height: 50vh;
  background: #B0BEC5;
  margin: auto;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  border-radius: 0 0 5px 5px;
}
#container .score {
  position: absolute;
  display: table;
  top: -9vh;
  width: 22vh;
  height: 10vh;
  background: #B0BEC5;
  border-radius: 5px 0 0 0;
  text-align: center;
  padding-top: 0.5vh;
  box-sizing: border-box;
}
#container .score p {
  display: table-cell;
  font-size: 3.5vh;
}
#container .score p .title {
  display: block;
  color: #455A64;
}
#container .score p .scorefield {
  color: white;
  letter-spacing: 1px;
  font-weight: 600;
}
#container .newgame {
  position: absolute;
  top: -9vh;
  right: 0;
  width: 29vh;
  height: 10vh;
  background: #B0BEC5;
  border-radius: 0 5px 0 0;
}
#container .newgame .button {
  position: absolute;
  display: table;
  width: 24vh;
  height: 7vh;
  margin: auto;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: #CFD8DC;
  border-radius: 4px;
  text-align: center;
  cursor: pointer;
  transition: box-shadow 0.3s;
}
#container .newgame .button:hover {
  box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
  transition: box-shadow 0.3s;
}
#container .newgame .button:active {
  box-shadow: inset 0 10px 20px rgba(0, 0, 0, 0.19), inset 0 6px 6px rgba(0, 0, 0, 0.23);
  transition: all 0.3s;
}
#container .newgame .button span {
  display: table-cell;
  color: #455A64;
  font-size: 3vh;
  vertical-align: middle;
}
#container .over {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.7);
  display: table;
  text-align: center;
  border-radius: 4px;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.5s;
}
#container .over span {
  display: table-cell;
  color: #455A64;
  font-size: 5vh;
  vertical-align: middle;
}
#container .won {
  position: absolute;
  top: 0;
  left: 50vh;
  width: 70vh;
  height: 100%;
  padding-top: 10vh;
  opacity: 0;
  border-radius: 4px;
  padding-left: 4vh;
  visibility: hidden;
  transition: padding-top 0.3s, opacity 0.4s;
}
#container .won .winner {
  display: block;
  color: rgba(255, 255, 255, 0.25);
  font-size: 13vh;
}
#container .won .bestscore {
  color: rgba(255, 255, 255, 0.25);
  font-size: 4vh;
}
#container .won .numbest {
  color: #FF5722;
  font-size: 4.3vh;
}
#container .grid {
  width: 100%;
  height: 100%;
  padding-top: 1vh;
}
#container .grid .row {
  position: relative;
  width: 100%;
  height: 10vh;
  padding-left: 1vh;
}
#container .grid .row .base {
  position: relative;
  float: left;
  width: 10vh;
  height: 10vh;
  background: #CFD8DC;
  border-radius: 5px;
  margin: 1vh;
  text-align: center;
}
#container .tiles {
  position: absolute;
  top: 0;
  width: 100%;
  height: 100%;
  padding: 2vh;
  box-sizing: border-box;
}
#container .tiles .tile {
  position: absolute;
  width: 10vh;
  height: 10vh;
  border-radius: 5px;
  overflow: hidden;
  transition: box-shadow 0.3s;
}
#container .tiles .tile:hover {
  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0, 0, 0, 0.23);
  transition: box-shadow 0.3s;
}
#container .tiles .tile .tile_content {
  display: table;
  text-align: center;
  width: 100%;
  height: 100%;
  transform-origin: center center;
  -webkit-animation: pop-up 0.3s ease-in forwards;
          animation: pop-up 0.3s ease-in forwards;
  padding: 1px;
}
#container .tiles .tile .tile_content span {
  display: table-cell;
  font-size: 3.5vh;
  vertical-align: middle;
  font-family: "Roboto", sans-serif;
}
.tile-2 {
  background: rgba(255, 255, 255, 0.9);
}
.tile-4 {
  background: #B3E5FC;
}
.tile-8 {
  background: #81D4FA;
}
.tile-16 {
  background: #4FC3F7;
  color: white;
}
.tile-32 {
  background: #29B6F6;
  color: white;
}
.tile-64 {
  background: #03A9F4;
  color: white;
}
.tile-128 {
  background: #E6EE9C;
}
.tile-256 {
  background: #DCE775;
  box-shadow: 0 0 10px 1px #DCE775;
}
.tile-512 {
  background: #D4E157;
  box-shadow: 0 0 15px 1px #D4E157;
}
.tile-1024 {
  background: #FFEB3B;
}
.tile-2048 {
  background: #FFC107;
  box-shadow: 0 0 10px 1px #FFC107;
}
.tile-4096 {
  background: #FF9800;
  box-shadow: 0 0 15px 1px #FF9800;
  color: white;
}
.tile-8192 {
  background: #7B1FA2;
  box-shadow: 0 0 10px 1px #7B1FA2;
  color: white;
}
@-webkit-keyframes pop-up {
  0% {
    transform: scale(0.4);
  }
  50% {
    transform: scale(1.4);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes pop-up {
  0% {
    transform: scale(0.4);
  }
  50% {
    transform: scale(1.4);
  }
  100% {
    transform: scale(1);
  }
}

还有JS代码过于长我就不放进来了

完整代码已上传


CSDN资源下载:https://download.csdn.net/download/qq_44273429/14969790



目录
相关文章
|
29天前
|
移动开发 HTML5
HTML5熊猫弹跳手机小游戏源码
一款html5手机端小游戏源码,熊猫跳跃小游戏源码下载。熊猫脚底有弹簧,长按变化力度跳跃,计分游戏,html5手机熊猫也疯狂小游戏源代码。
39 5
|
4月前
|
移动开发 HTML5
自适应手机端青蛙吃蚊子小游戏html源码
HTML5青蛙吃蚊子游戏源码分享,音乐可以改的,自己在目录替换一下音乐就可以了训练手速和眼力的时候到了!
41 0
自适应手机端青蛙吃蚊子小游戏html源码
|
7月前
|
移动开发 API HTML5
HTML5响应式自动采集API壁纸系统源码自适应手机端
HTML5响应式自动采集API壁纸系统源码自适应手机端
94 11
HTML5响应式自动采集API壁纸系统源码自适应手机端
|
移动开发 JavaScript 前端开发
HTML5兔子吃月饼手机小游戏
HTML5兔子吃月饼手机小游戏
59 0
|
小程序
如何让你的小游戏适配不同尺寸的手机屏幕
本文主要内容:教你如何对游戏中的 UI,背景以及内容进行不同尺寸屏幕的适配,让你的小游戏在各种尺寸的屏幕上,都展示出最好的一面。 如果你没有任何的游戏开发经验,欢迎观看我的“人人都能做游戏”系列视频教程,它会手把手的教你做出自己的第一个小游戏。
451 0
|
6月前
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
4937 2
|
7月前
|
监控 安全 Android开发
【新手必读】Airtest测试Android手机常见的设置问题
【新手必读】Airtest测试Android手机常见的设置问题
207 0
|
7月前
|
XML Java Android开发
Android Studio开发之使用内容组件Content获取通讯信息讲解及实战(附源码 包括添加手机联系人和发短信)
Android Studio开发之使用内容组件Content获取通讯信息讲解及实战(附源码 包括添加手机联系人和发短信)
458 0
|
7月前
|
Web App开发 前端开发 网络安全
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
【2月更文挑战第21天】前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
110 1
前端分析工具之 Charles 录制 Android/IOS 手机的 https 应用
|
7月前
|
存储 数据库 Android开发
Android实现手机内存存储功能
Android实现手机内存存储功能
66 2