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

news2024/11/16 8:19:10

最近,孩子的幼儿园让家长体验“半日助教活动”,每个家长需要讲授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')
	//为每个容器设置背景图的url
	for(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.id
			const 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.coloradmin.cn/o/1693297.html

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

相关文章

VirtualBox+Ubuntu22.10+Docker+ROS2

Docker 拉取ros2镜像 docker pull osrf/ros:foxy-desktop 运行 docker run -it --nameros2 -p 50022:22 osrf/ros:foxy-desktop 进入容器安装组件 apt-get update apt-get install vim apt-get install git apt-get install net-tools # 安装ssh apt-get install openssh…

企业如何防止数据泄密?大型企业必备的文件加密软件

随着信息化建设的大步推进&#xff0c;越来越多的企业资料以电子文件的形式保存&#xff0c;企业内部和企业之间的信息交流也主要依靠电子文件。近年来的泄密事件层出不穷&#xff0c;比如东软泄密案、HTC窃密案、力拓案等&#xff0c;给企业带来灾难性的经济损失及信誉重创。如…

Redis(十三) 事务

文章目录 前言事务的特性Redis事务的执行原理Redis中使用事务WATCH UNWATCH实现乐观锁 前言 前面我们学习 MySQL 的时候&#xff0c;肯定也学习了事务。事务是什么&#xff1f;给大家举个例子&#xff1a;假如我给朋友微信转账&#xff0c;我给他转了 100 块钱&#xff0c;当我…

ArcGIS中分割与按属性分割的区别

1、分割ArcGIS批量导出各个市的县级行政边界 视频教学&#xff1a; ArcGIS批量导出各个市的县级行政边界002 2、ArcGIS批量导出全国各省的边界 视频教学&#xff1a; ArcGIS导出全国各省的边界003 推荐学习&#xff1a; ArcGIS全系列实战视频教程——9个单一课程组合系列直播回…

RAG技术综述

RAG的基本架构。&#xff0c;生成器和检索器。 参考paper&#xff1a;https://arxiv.org/html/2402.19473v4 文中将rag的内容从文本扩展至多模态&#xff0c;打开了思路。 生成器&#xff1a;transformer&#xff0c;LSTM&#xff0c;扩散模型&#xff0c;gan 检索器&#xf…

怎么一键消除路人?教你三个消除方法

怎么一键消除路人&#xff1f;在数字时代&#xff0c;摄影已成为我们记录生活、表达情感的重要方式。然而&#xff0c;完美的照片背后往往隐藏着一些不那么完美的元素——比如那些不经意间闯入镜头的路人。他们或许只是匆匆过客&#xff0c;但却足以破坏你精心构图的美好瞬间。…

香农信息量/自信息、信息熵、相对熵/KL散度/信息散度、交叉熵

诸神缄默不语-个人CSDN博文目录 文章目录 1. 引言2. 什么是熵&#xff1f;3. 香农信息量/自信息香农信息量的定义香农信息量的含义香农信息量计算示例香农信息量与信息熵的关系 4. 信息熵信息熵的定义信息熵的计算公式信息熵计算示例 5. 衡量两个分布间的差异&#xff1a;相对熵…

Excel工作簿/表的合并/拆分全集(一文通关)

概述 在工作中&#xff0c;我们常会用到到Excel拆分/合并为多个工作表/簿&#xff0c;如全国的订单表&#xff0c;需要根据省份列拆分下发至对应的省、各省份数据需要汇总、...... 应该如何操作呢&#xff1f; 1. 传统方法&#xff08;借助透视表、Power Query编辑器、VBA实现…

Alienware外星人笔记本m17 R3原厂OEM预装Win10系统包下载,恢复开箱状态电脑自带系统

适用型号&#xff1a;Alienware M17 R3 链接&#xff1a;https://pan.baidu.com/s/1m3RwLmIlih3iPn5AclpptQ?pwdmsef 提取码&#xff1a;msef 外星人原装W10系统自带所有驱动、出厂专用主题壁纸、系统属性专属联机支持标志、系统属性专属LOGO标志、Office办公软件、MyAlie…

k8s-helloword部署一个应用

k8s-helloword部署一个应用 快速部署一个pod命令 部署一个名为 test-nginx Pod 方式一&#xff1a;使用 kubectl run kubectl run test-nginx --imagenginx然后使用 kubectl get pod 查看&#xff0c;kubectl get pod 是查看默认名称空间下的Pod 如果想要跟详细的查看这个…

OpenAI模型GPT-4o、GPT-4、Gemini 1.5性能比较

大家好&#xff0c;OpenAI最新推出的GPT-4o&#xff0c;标志着人工智能语言模型和交互方式迈入了新纪元。最引人注目的是&#xff0c;GPT-4o支持实时互动和流畅的对话切换&#xff0c;让交流更加自然。 本文将对比分析GPT-4o、GPT 4以及谷歌的Gemini和Unicorn模型&#xff0c;…

java继承使用细节二

构造器 主类是无参构造器时会默认调用 public graduate() {// TODO Auto-generated constructor stub也就是说我这里要用构造器会直接调用父类。它是默认看不到的 &#xff0c;System.out.println("graduate");} 但当主类是有参构造器如 public father_(int s,doubl…

2024最新私有化部署AI大模型,让每个人都有属于自己的AI助理

让每个人都拥有一个属于自己的本地大模型 下载Ollama 下载地址 ​ https://ollama.com/download ​ Ollama支持MacOS、Linux、Windows 解压 下载完成后&#xff0c;会得到一个Ollama-darwin.zip文件&#xff0c;解压后&#xff0c;以Mac为例是一个可运行文件&#xff1a;O…

鸿蒙HarmonyOS开发:tabs结合tabContent实现底部tabBar导航栏页面布局

文章目录 一、组件介绍1、Tabs参数属性事件TabsController 2、子组件属性说明 二、基础示例1、基础顶部导航2、效果3、可以滚动导航栏2、效果 三、扩展示例自定义导航栏1、代码2、效果 一、组件介绍 Tabs组件的页面组成包含两个部分&#xff0c;分别是TabContent和TabBar。Tab…

【CTF Web】NSSCTF 3868 [LitCTF 2023]这是什么?SQL !注一下 !Writeup(SQL注入+报错注入+括号闭合+DIOS)

[LitCTF 2023]这是什么&#xff1f;SQL &#xff01;注一下 &#xff01; 为了安全起见多带了几个套罢了o(▽)q 出题人 探姬 解法 先试试这个&#xff1a; )))))) or 11 -- 有结果了&#xff0c;但是这个 flag 是假的。 flag 可能在其他表里。用 hackbar 上 DIOS payload。 …

2024-2030数据集成成熟度曲线(一)

作者 | 郭炜 导读&#xff1a;最新发布的《技术成熟度曲线2024》全面评估数据集成技术架构的7个维度&#xff0c;包括技术成熟度、技术难度、业务价值、技术成熟周期、管理协作难度、大模型结合等评估维度&#xff0c;报告篇幅较长&#xff0c;我们将报告分为3篇系列文章&#…

微信小程序源码-基于Java后端的会议发布与预约系统毕业设计(附源码+演示录像+LW)

大家好&#xff01;我是程序员一帆&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;微信小程序毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设…

一文通晓mysql

目录 1.mysql在centos7环境上的安装 2.数据库基础 1. 什么是数据库 2.基本认识 3.库的操作 1.创建数据库 2.查看数据库列表 3.删除数据库 4.修改数据库 5.库的备份与修复 4.表的操作 1.创建表 2.查看表 3.修改表 修改表名 给表增加属性。 修改表中的某个属性&…

【传知代码】用二维图像渲染3D场景视频-论文复现

文章目录 概述原理介绍模型介绍环境配置/部署方式安装环境准备数据训练&#xff08;train&#xff09;评估&#xff08;eval&#xff09;渲染&#xff08;render&#xff09; 小结 论文地址 本文涉及的源码可从用二维图像渲染3D场景视频该文章下方附件获取 概述 **NeRF&#…

第十九届全国环境友好科技竞赛(绿色创业类)正式启动

近日&#xff0c;第十九届全国环境友好科技竞赛&#xff08;绿色创业类&#xff09;正式拉开帷幕。本次竞赛由清华大学、同济大学、西安建筑科技大学及中国环境科学学会共同主办&#xff0c;旨在通过学科竞赛的方式鼓励全国高校学生积极参与到资源节约型和环境友好型的和谐社会…