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

蓝桥杯练习——拼出一个未来

选中 index.html 右键启动 Web Server 服务(Open with Live Server),让项目运行起来。接着,打开环境右侧的【Web 服务】,就可以在浏览器中看到如下效果:

初始效果

目标

完善 js/index.js 的 TODO 部分,实现以下目标:

  1. 将拖动的拼图块与目标拼图块的图片进行交换,这包括交换图片的 src 属性和 data-id 属性。待补充代码的 drop 函数中现有的两个变量解释如下:draggedPiece:代表被拖动的拼图块的图片元素的父元素。this:代表当前目标位置的拼图块的图片元素父元素。

拼图成功后的 DOM 如下,图片 srcaltdata-id 均按照 1-9 顺序排列

<div class="puzzle-container" id="puzzle-container"><div class="puzzle-piece" draggable="true"><img src="./images/img1.png"  data-id="1" /></div><div class="puzzle-piece" draggable="true"><img src="./images/img2.png"  data-id="2" /></div><!-- ... 省略部分代码 --><div class="puzzle-piece" draggable="true"><img src="./images/img9.png"  data-id="9" /></div>
</div>

  1. 显示/隐藏成功消息:拼图成功则设置成功消息元素(id=success-message)的 class 名为 show,否则该元素的 class 名为 hide。(注意:成功消息元素同时有且只能有一个 class 名

完成后效果如下:

完成效果

题解 

// 定义拖放事件的处理函数
function drop(event) {// 检查是否拖动的拼图块不是当前目标拼图块// draggedPiece 被拖动的拼图块元素。this 目标位置的拼图块元素。if (draggedPiece !== this) {console.log(draggedPiece);console.log(this);// TODO:待补充代码// 交换拼图块图片和数据 IDconst curImg = this.querySelector("img");const draggedImg = draggedPiece.querySelector("img");[curImg.src, draggedImg.src] = [draggedImg.src, curImg.src];[curImg.dataset.id, draggedImg.dataset.id] = [draggedImg.dataset.id,curImg.dataset.id,];// 检查拼图是否完全正确const puzzles = document.querySelectorAll(".puzzle-piece img");const isValid = Array.from(puzzles).every((img, index) => parseInt(img.dataset.id) === index + 1);successMessage.className = isValid ? "show" : "hide";}

http://www.lryc.cn/news/331231.html

相关文章:

  • stm32f103c8t6学习笔记(学习B站up江科大自化协)-SPI
  • 云计算的安全需求
  • 【C++】编程规范之表达式原则
  • Python人工智能基础知识:理解神经网络与机器学习的基本概念
  • 10_MVC
  • 【Java多线程(4)】案例:设计模式
  • 时序预测 | Matlab实现CPO-BiLSTM【24年新算法】冠豪猪优化双向长短期记忆神经网络时间序列预测
  • java面试题(4)|Spring和Spring Boot之间有什么关联和区别
  • Spring Boot中前端通过请求接口下载后端存放的Excel模板
  • 构建企业级微服务平台:实现可扩展性、弹性和高效性
  • 存内计算技术在边缘计算、物联网设备中的应用及前景
  • C#使用Selenium驱动Chrome浏览器
  • 【软件工程】详细设计(二)
  • 数据质量决定大模型能力,景联文科技提供高质量大模型数据
  • 大话设计模式之状态模式
  • 【机器学习】“强化机器学习模型:Bagging与Boosting详解“
  • 《QT实用小工具·九》设备按钮控件
  • 计算机服务器中了helper勒索病毒怎么办,helper勒索病毒解密流程步骤
  • qT 地图显示飞机轨迹
  • 智慧展览馆:基于AI智能识别技术的视频智慧监管解决方案
  • Linux实用性脚本 [bash]
  • Key exchange failed.No compatible key exchange method.
  • 【FAQ】HarmonyOS SDK 闭源开放能力 —Asset Store Kit
  • arm架构离线部署docker
  • SpringBoot(48)-使用 SkyWalking 进行分布式链路追踪
  • JS实现双向数据绑定的三种方式
  • Bash相关
  • Flink 流批一体在模型特征场景的使用
  • 06-编辑器
  • 5.3.2 实验2:配置交换机端口安全