当前位置: 首页 > news >正文

蓝桥杯(Web大学组)2022国赛真题:水果消消乐

思路:

记录点击次数,点击次数为1时,记录点击下标(用于隐藏or消除)、点击种类,点击次数为2时,判断该下标所对应种类与第一次是否相同

相同:两个都visibility:hidden (占位)

不同:两个都display:none

遇到的bug:

一开始移除相同盒子之后会出现这个情况,以为是下标搞错了从而导致删成最后两个,后来转念一想,应该是因为每次删完后面所有盒子都会向前移动,所以不需要把外面盒子元素移除,只需要把外面盒子占位隐藏(使用visibility:hidden)

// TODO:请补充代码
function startGame() {//总分let score = document.querySelector('#score');   //存放分数的spanlet count = 0;  //分数let btn = document.querySelector('.btn');btn.style.opacity='0'//按钮隐藏let imgBox = document.querySelectorAll('.img-box');//装图片的盒子let img = document.querySelectorAll('img');//图片//题目的目标是图片出现后隐藏,一开始以为还要实现淡出淡入还有变大变小的效果,,(后面花太多时间没实现,去看了题目才发现。。。// img.forEach((item,index) => {//     item.style.transform = `transform: scale(${0})`//     item.style.transition = 'all 1s'// })img.forEach((item,index) => {item.style.display = 'block'// item.style.transform = `transform: scale(${1})`// item.style.opacity = 1//图片一开始出现后隐藏setTimeout(() =>{// item.style.transform = `transform: scale(${0})`item.style.display = 'none'},1000)// item.style.display = 'none'// item.style.transform = `transform: scale(${1})`})let cli = 0 //点击次数let preIndex = null  //上一次点击下标//遍历所有盒子for(let i = 0;i<imgBox.length;i++){let k = i   //记录所点击下标imgBox[i].addEventListener('click',()=>{img[i].style.display = 'block'  //图片出现cli++   //点击次数+1//判断点击次数,实现相应操作if(cli === 1){//记录第一次点击下标preIndex = k}if(cli === 2){//第二次判断是否相同if(img[i].alt === img[preIndex].alt){setTimeout(() =>{//相同:移除(×)// container.removeChild(imgBox[preIndex])// container.removeChild(imgBox[k])//这里如果直接移除dom元素,会导致后面所有盒子都向前移动//所以只需把外面盒子隐藏(占位)imgBox[preIndex].style.visibility = 'hidden'imgBox[k].style.visibility = 'hidden'},1000)//点击次数复原cli = 0//加2分count+=2score.innerHTML = count;}else{setTimeout(() =>{img[k].style.display = 'none';img[preIndex].style.display = 'none'},1000)//点击次数复原cli = 0//减2分count-=2score.innerHTML = count;}}})}
}

相关文章:

  • Python学习之路-爬虫进阶:爬虫框架雏形
  • 构建智慧交通平台:架构设计与实现
  • Python爬虫——解析库安装(1)
  • 【操作系统】Ubuntu Swap内存扩容
  • 【30秒看懂大数据】数据标准
  • AlmaLinux更换鼠标样式为Windows样式
  • WordPress函数wptexturize的介绍及用法示例,字符串替换为HTML实体
  • 随机过程及应用学习笔记(四) 马尔可夫过程
  • LLVM实战之LLVM bitcode转换成目标平台汇编码
  • 【30秒看懂大数据】数据中台
  • 不到1s生成mesh! 高效文生3D框架AToM
  • Java学习网络编程
  • Apache 神禹(shenyu)源码阅读(三)——被网关路由的后端服务 Client 向 Admin 注册的数据传输(Client端)
  • 计算机网络概述习题拾遗
  • 【程序设计竞赛】C++与Java的细节优化
  • [PHP内核探索]PHP中的哈希表
  • 【译】JS基础算法脚本:字符串结尾
  • 08.Android之View事件问题
  • ES学习笔记(10)--ES6中的函数和数组补漏
  • Object.assign方法不能实现深复制
  • React+TypeScript入门
  • select2 取值 遍历 设置默认值
  • 大型网站性能监测、分析与优化常见问题QA
  • 基于组件的设计工作流与界面抽象
  • 记一次和乔布斯合作最难忘的经历
  • 如何正确配置 Ubuntu 14.04 服务器?
  • 微服务入门【系列视频课程】
  • Spring第一个helloWorld
  • 移动端高清、多屏适配方案
  • ​卜东波研究员:高观点下的少儿计算思维
  • # 达梦数据库知识点
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (PHP)设置修改 Apache 文件根目录 (Document Root)(转帖)
  • (二)pulsar安装在独立的docker中,python测试
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)ssm高校升本考试管理系统 毕业设计 201631
  • (附源码)计算机毕业设计SSM疫情社区管理系统
  • (四)Linux Shell编程——输入输出重定向
  • (译) 理解 Elixir 中的宏 Macro, 第四部分:深入化
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • .[backups@airmail.cc].faust勒索病毒的最新威胁:如何恢复您的数据?
  • .java 指数平滑_转载:二次指数平滑法求预测值的Java代码
  • .NET 6 在已知拓扑路径的情况下使用 Dijkstra,A*算法搜索最短路径
  • .NET 反射 Reflect
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc
  • .NET中GET与SET的用法
  • /etc/sudoers (root权限管理)
  • @private @protected @public
  • [ C++ ] 继承
  • [20180129]bash显示path环境变量.txt
  • [2021ICPC济南 L] Strange Series (Bell 数 多项式exp)
  • [bzoj1912]异象石(set)
  • [CF226E]Noble Knight's Path
  • [C语言]——柔性数组