bootstrap实现九宫格效果(猫捉老鼠游戏)

最近,孩子的幼儿园让家长体验“半日助教活动”,每个家长需要讲授15-20分钟的课程。作为一名程序员,实在没有能教的课程,只能做了一个小游戏,带着小朋友们熟悉数字。

效果大致是这样的。九宫格的左上角是一只小猫图片,右下角是小老鼠图片,其他7个方框都是数字。方框被点击时背景图片就会变成小猫,每次点击都相当于小猫移动了一步,直到点击老鼠,老鼠的图片被替换,相当于猫捉到老鼠了。

 废话不多说,直接上代码。

html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><!-- 引入bootstrap --><link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css"> <link rel="stylesheet" href="./css/d1g.css"><title>九宫格图片</title>
</head>
<body><!-- 操作区 --><div id="imgInfo"><button id="fileBtn" class="btn btn-info">当前为第1关</button><br><button id="updateUrl"class="btn btn-info">第2关</button><button id="clearInput"class="btn btn-primary">第3关</button><button id="tsBtn"class="btn btn-warning">提示</button><button id="resetBtn"class="btn btn-success">重新开始</button><br></div><!-- 九宫格图片 --><div class="wrap" id="wrap"><div class="box" id="box1"></div><div class="box" id="box2"></div><div class="box" id="box3"></div><div class="box" id="box4"></div><div class="box" id="box5"></div><div class="box" id="box6"></div><div class="box" id="box7"></div><div class="box" id="box8"></div><div class="box" id="box9"></div></div>
</body>
<!-- 引入js文件 -->
<script src="./js/d1g.js"></script>
</html>

css:

/* 按钮容器 */
#imgInfo{margin: 20px;text-align: center;width: 100%;height: 20%;
}
#fileBtn{margin-bottom: 3.125rem;
}#updateBtn{padding-right: 3.125rem;
}/* 九宫格  */
.wrap{width: 1806px;height: 1806px;margin: 0 auto;display: flex;flex-wrap: wrap;justify-content: space-between;align-content: space-between;
}
.wrap > .box{width: 600px;height: 600px;background-repeat: no-repeat;background-size: cover;
}

js:

window.onload = function(xh){var intNum = 1;// 获取视口宽度var screenWidth = window.innerWidth;// 获取视口高度var screenHeight = window.innerHeight;var wrap = document.querySelector('#wrap');var wrapWidth = screenHeight*0.78 + 'px'var btnWidth = screenWidth*0.2 + 'px'var btnHeight = screenHeight*0.06 + 'px'var fontHeight = screenHeight*0.06/2 + 'px'wrap.style.width =wrapWidth;wrap.style.height =wrapWidth;//获取元素var fileBtn = document.querySelector('#fileBtn')fileBtn.style.width = btnWidth;fileBtn.style.height = btnHeight;fileBtn.style.fontSize = fontHeight; // 将字体大小设置var updateBtn = document.querySelector('#updateUrl')//第2关var clearBtn = document.querySelector('#clearInput')//第3关var tsBtn = document.querySelector('#tsBtn')//提示var resetBtn = document.querySelector('#resetBtn')//重新开始/*设置按钮属性*/updateBtn.style.width = screenWidth*0.1 + 'px';updateBtn.style.height = screenHeight*0.04 + 'px';updateBtn.style.fontSize = screenHeight*0.04/2 + 'px';clearBtn.style.width = screenWidth*0.1 + 'px';clearBtn.style.height = screenHeight*0.04 + 'px';clearBtn.style.fontSize = screenHeight*0.04/2 + 'px';tsBtn.style.width = screenWidth*0.1 + 'px';tsBtn.style.height = screenHeight*0.04 + 'px';tsBtn.style.fontSize = screenHeight*0.04/2 + 'px';resetBtn.style.width = screenWidth*0.1 + 'px';resetBtn.style.height = screenHeight*0.04 + 'px';resetBtn.style.fontSize = screenHeight*0.04/2 + 'px';resetBtn.onclick = function(){window.onload(2)}var maskBox = document.querySelector("#mask")//监听 更新 按钮的点击updateBtn.onclick = function(){window.open('./d2g.html');}//监听 清空 按钮的点击clearBtn.onclick = function(){window.open('./d3g.html');}if(xh!=2){//开始配音var audio = new Audio('./audio/py7.MP3');// 播放音频audio.play();}//加载图片//获取所有格子var box = document.getElementsByClassName('box')//为每个容器设置背景图的urlfor(var i=0;i<box.length;i++){box[i].style.width =screenHeight*0.26 + 'px';box[i].style.height =screenHeight*0.26 + 'px';box[i].style.border = '1.5px solid white'var j = i+1;let selector = `#box${j}`;if(i==0){document.querySelector(selector).style.backgroundImage = `url('./img/xm1.png')`}if(i>0&i<8){document.querySelector(selector).style.backgroundImage = `url('./img/sz${j}.jpg')`}if(i==8){document.querySelector(selector).style.backgroundImage = `url('./img/ls1.png')`}}tsBtn.onclick = function(){audio = new Audio('./audio/py1.MP3');// 播放音频audio.play();}//选中点击数字图片事件document.querySelectorAll('.box').forEach(function(element) {element.addEventListener('click', function(event) {var kjId = this.idconst numbers = kjId.match(/\d+/g);for(var i=1;i<9;i++){if(i!=numbers){let selector = `#box${i}`;document.querySelector(selector).style.backgroundImage = `url('./img/sz${i}.jpg')`}}document.querySelector(`#${this.id}`).style.backgroundImage = `url('./img/xm1.png')`audio = new Audio('./audio/py13.MP3');// 播放音频audio.play();if(numbers==9){document.querySelector(`#${this.id}`).style.backgroundImage = `url('./img/xm2.png')`pauseSeconds(0.5, () => {audio = new Audio('./audio/py3.MP3');// 播放音频audio.play();})}});})function pauseSeconds(seconds, callback) {setTimeout(callback, seconds * 1000);}
}

图片我就不上传了,读者自行放几张就OK~快去试试吧~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/15164.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Pandas高效数据清洗与转换技巧指南【数据预处理】

三、数据处理 1.合并数据&#xff08;join、merge、concat函数&#xff0c;append函数&#xff09; Concat()函数使用 1.concat操作可以将两个pandas表在垂直方向上进行粘合或者堆叠。 join属性为outer&#xff0c;或默认时&#xff0c;返回列名并集&#xff0c;如&#xff…

力扣:3101. 交替子数组计数

3101. 交替子数组计数 给你一个二进制数组nums 。如果一个子数组中 不存在 两个 相邻 元素的值 相同 的情况&#xff0c;我们称这样的子数组为 交替子数组 。 返回数组 nums 中交替子数组的数量。 示例 1&#xff1a; 输入&#xff1a; nums [0,1,1,1] 输出&#xff1a; 5…

Spring Boot集成Picocli快速入门Demo

1.什么是Picocli&#xff1f; Picocli是一个单文件命令行解析框架&#xff0c;它允许您创建命令行应用而几乎不需要代码。使用 Option 或 Parameters 在您的应用中注释字段&#xff0c;Picocli将分别使用命令行选项和位置参数填充这些字段。使用Picocli来编写一个功能强大的命…

C-数据结构-顺序存储队列

/* 顺序循环的队列形式 人为规定头指针指向位置不能指向有效数据 保留一个空位置&#xff0c;判断空和满 */ queue.h #ifndef QUEUE_H__ #define QUEUE_H__ typedef int datatype; #define MAXSIZE 5 //最多能放四个 typedef struct node_st {datatype data[MAXSIZE];int hea…

【项目托管git】本地项目托管到 Gitee

本地项目托管到 Gitee 详细步骤&#xff0c;手把手教学&#xff0c;就这一篇博客足够_gitee 本地部署-CSDN博客 6.上传项目 6.1 将远程仓库中的文件推送至本地仓库中 git pull --rebase origin master 这里的 origin master 表示从远程的 master 主分支上 pull 项目当本地&a…

市面上前 11 名的 Android 数据恢复软件

Android数据恢复软件是恢复无意中删除的文件或文件夹的必要工具。该软件还将帮助您恢复丢失或损坏的信息。本文介绍提供数据备份和磁盘克隆选项的程序&#xff0c;这些选项有助于在Android设备上恢复文件的过程。 如果您正在寻找一种有效的方法来恢复图像&#xff0c;文档&…

koa使用ws,scoker.io建立websocket连接,断开重连

1.使用ws建立socket连接&#xff0c;ws兼容性比socket.io要好一些 koa.js const Koa require(koa); // 引入 Koa 框架 const http require(http); // 引入 Node.js 的 http 模块 const { WebSocketServer } require(ws); // 引入 ws 模块中的 WebSocketServer const cors…

SpringBoot——整合Thymeleaf模板

目录 模板引擎 新建一个SpringBoot项目 pom.xml application.properties Book BookController bookList.html ​编辑 项目总结 模板引擎 模板引擎是为了用户界面与业务数据分离而产生的&#xff0c;可以生成特定格式的页面在Java中&#xff0c;主要的模板引擎有JSP&…

【MySQL精通之路】SQL优化(1)-查询优化(1)-WHERE子句

主博客&#xff1a; 【MySQL精通之路】SQL优化(1)-查询优化-CSDN博客 下一篇&#xff1a; 【MySQL精通之路】SQL优化(1)-查询优化(2)-范围查询优化-CSDN博客 本节讨论可用于处理WHERE子句的优化。 这些示例使用SELECT语句&#xff0c;但DELETE和UPDATE语句中的WHERE子句也适…

Python 闭包的高级用法详解

所谓闭包&#xff0c;就是指内函数使用了外函数的局部变量&#xff0c;并且外函数把内函数返回出来的过程&#xff0c;这个内函数称之为闭包函数。可以理解为是函数式编程中的封装。 内部函数可以使用外部函数定义的属性&#xff1a;外部函数调用后&#xff0c;返回内部函数的地…

Linux_web控制台-cockpit

1、安装cockpit [rootlocalhost ~]# dnf install cockpit -y 2、启动cockpit服务并查运行状态 [rootlocalhost ~]# systemctl start cockpit [rootlocalhost ~]# systemctl status cockpit 2、设置开机启动 [rootlocalhost ~]# vim /usr/lib/systemd/system/cockpit.servi…

局域网桌面监控软件哪个好用?良心推荐

如何有效地监控和管理内部员工的计算机使用行为&#xff0c;防范潜在的安全风险&#xff0c;提高工作效率&#xff0c;是众多企业管理者关注的焦点。 而一款优秀的局域网桌面监控软件无疑能为企业的IT治理提供有力支撑。 小编在此给大家推荐一款好用的局域网桌面监控软件——域…

5. C++网络编程-UDP协议的实现

UDP是无连接的。 UDP Server网络编程基本步骤 创建socket&#xff0c;指定使用UDP协议将socket与地址和端口绑定使用recv/send接收/发送数据 由于UDP是无连接的&#xff0c;直接侦听就行使用close关闭连接 这个UDP接收数据的时候用的API是recvfrom,发送数据是sendto

Python——获取DataFrame的表头列表

# 获取表头列表 header_list df_data.columns.tolist()

MCS-51伪指令

上篇我们讲了汇编指令格式&#xff0c;寻址方式和指令系统分类&#xff0c;这篇我们讲一下单片机伪指令。 伪指令是汇编程序中用于指示汇编程序如何对源程序进行汇编的指令。伪指令不同于指令&#xff0c;在汇编时并不翻译成机器代码&#xff0c;只是会汇编过程进行相应的控制…

已有yarn集群部署spark

已有yarn集群的情况下&#xff0c;部署spark只需要部署客户端。 一、前提条件 已部署yarn集群&#xff0c;部署方式参考&#xff1a;https://blog.csdn.net/weixin_39750084/article/details/136750613?spm1001.2014.3001.5502&#xff0c;我部署的hadoop版本是3.3.6已安装j…

Android Compose 九:常用组件列表 简单使用

遇事不决 先看官方文档 列表和网格 如果不需要任何滚动&#xff0c;通过Column 或 Row可以使用verticalScroll() 使Column滚动 Column(modifier Modifier.verticalScroll(rememberScrollState())) {for (i in 0..50){Text(text "条目>>${i}")}}显示大量列表…

13、设计模式之观察者模式

观察者模式 观察者模式是一种行为型设计模式&#xff0c;它定义了一种一对多的依赖关系&#xff0c;当一个对象的状态发生改变时&#xff0c;其所有依赖者都会收到通知并自动更新。 当对象间存在一对多关系时&#xff0c;则使用观察者模式&#xff08;Observer Pattern&#x…

从0开始linux(3)——如何读写文件

欢迎来到博主的专栏——从0开始linux 博主ID&#xff1a;代码小豪 文章目录 创建普通文件用文本编辑器nano写入文件如何读取文件cat命令less命令head和tail 我们前面已经了解和如何操作文件&#xff0c;但是目前认识的文件类型分为两类&#xff0c;一类是目录文件、另一类是普通…

【C#上位机应用开发实战】—— 通信模块的基础与实践

&#x1f680; 引言 在工业自动化、设备监控、物联网&#xff08;IoT&#xff09;等领域&#xff0c;上位机软件扮演着至关重要的角色。作为连接人与设备的桥梁&#xff0c;上位机软件不仅需要提供友好的用户界面&#xff0c;更需要具备高效、稳定的通信能力。今天&#xff0c…