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

模拟热血三国内城安置建筑物

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>模拟热血三国内城安置建筑物</title><style>body {background: #000;display: flex;flex-direction: column;align-items: center;}#many-buildings {display: flex;justify-content: center;margin-top: 200px;}.item,.b-item {width: 75px;height: 75px;font-size: 24px;display: flex;justify-content: center;align-items: center;user-select: none;cursor: move;border: 1px solid #ccc;margin: 10px;color: white;text-shadow: 1px 1px 1px #090909;}.b-civilian-house {background: #FFD700;}.b-barracks {background: #800000;}.b-warehouse {background: #b59648;}.b-market {background: #32CD32;}.b-inn {background: #4682B4;}.b-recruitment {background: #9ACD32;}.b-blacksmith {background: #FFA07A;}.b-workshop {background: #008080;}.b-training {background: #228B22;}.b-academy {background: #ADD8E6;}.b-imperial {background: #90EE90;}.b-stable {background: #8A2BE2;}.b-post {background: #20B2AA;}.b-beacon {background: #556B2F;}#grid-container {display: flex;flex-direction: column;align-items: center;margin-top: 20px;}.g-item-001 {display: flex;flex-direction: row;}.g-item-01 {display: grid;grid-template-columns: repeat(2, 100px);}.g-item-3 {width: 200px;height: 200px;display: flex;font-size: 80px;font-weight: bold;justify-content: center;align-items: center;background: #808080;border: 1px solid #ccc;user-select: none;}.g-item-002 {display: grid;grid-template-columns: repeat(6, 100px);}.g-item {width: 100px;height: 100px;background: #808080;display: flex;justify-content: center;align-items: center;color: white;text-shadow: 1px 1px 1px #090909;font-size: 14px;border: 1px solid #ccc;position: relative;}</style>
</head><body><div id="many-buildings"><div class="item b-civilian-house" draggable="true"><b>0</b>民房</div><div class="item b-barracks" draggable="true"><b>0</b>军营</div><div class="item b-warehouse" draggable="true"><b>0</b>仓库</div></div><div id="grid-container"><div class="g-item-001"><div class="g-item-01"><div class="g-item g-item-1"></div><div class="g-item g-item-2"></div><div class="g-item g-item-6"></div><div class="g-item g-item-7"><div class="b-item b-blacksmith" draggable="true">铁匠铺</div></div></div><div class="g-item-3">官府</div><div class="g-item-01"><div class="g-item g-item-4"></div><div class="g-item g-item-5"></div><div class="g-item g-item-8"><div class="b-item b-imperial" draggable="true">鸿胪寺</div></div><div class="g-item g-item-9"></div></div></div><div class="g-item-002"><div class="g-item g-item-10"></div><div class="g-item g-item-11"><div class="b-item b-workshop" draggable="true">工匠作坊</div></div><div class="g-item g-item-12"><div class="b-item b-training" draggable="true">校场</div></div><div class="g-item g-item-13"><div class="b-item b-beacon" draggable="true">烽火台</div></div><div class="g-item g-item-14"></div><div class="g-item g-item-15"><div class="b-item b-academy" draggable="true">书院</div></div><div class="g-item g-item-16"></div><div class="g-item g-item-17"></div><div class="g-item g-item-18"><div class="b-item b-stable" draggable="true">马厩</div></div><div class="g-item g-item-19"></div><div class="g-item g-item-20"></div><div class="g-item g-item-21"></div><div class="g-item g-item-22"></div><div class="g-item g-item-23"></div><div class="g-item g-item-24"></div><div class="g-item g-item-25"><div class="b-item b-post" draggable="true">驿站</div></div><div class="g-item g-item-26"></div><div class="g-item g-item-27"><div class="b-item b-market" draggable="true">市场</div></div><div class="g-item g-item-28"></div><div class="g-item g-item-29"></div><div class="g-item g-item-30"><div class="b-item b-inn" draggable="true">客栈</div></div><div class="g-item g-item-31"></div><div class="g-item g-item-32"><div class="b-item b-recruitment" draggable="true">招贤馆</div></div><div class="g-item g-item-33"></div></div></div><script>const gridContainer = document.getElementById('grid-container');const manyBuildings = document.getElementById('many-buildings');let draggedItem = null;document.querySelectorAll('.item').forEach(item => {item.addEventListener('dragstart', dragStartItem);item.addEventListener('dragend', dragEnd);});document.querySelectorAll('.b-item').forEach(item => {item.addEventListener('dragstart', dragStartBItem);item.addEventListener('dragend', dragEnd);});gridContainer.addEventListener('dragover', dragOver);gridContainer.addEventListener('drop', dragDrop);manyBuildings.addEventListener('dragover', dragOver);manyBuildings.addEventListener('drop', dragDrop);function dragStartItem(e) {draggedItem = e.target;e.dataTransfer.setData('text/html', e.target.innerHTML);// 增加原始 b-item 的数字const bElement = draggedItem.querySelector('b');if (bElement) {bElement.textContent = parseInt(bElement.textContent) + 1;}}function dragStartBItem(e) {draggedItem = e.target;e.dataTransfer.setData('text/html', e.target.innerHTML);}function dragEnd(e) {draggedItem = null;}function dragOver(e) {e.preventDefault();}function dragDrop(e) {e.preventDefault();if (draggedItem) {if (draggedItem.classList.contains('b-item')) {// 直接移动 b-itemif (e.target.classList.contains('g-item')) {// 检查目标 g-item 是否已经包含一个 b-itemif (e.target.querySelector('.b-item') === null) {e.target.appendChild(draggedItem);} else {console.log("目标 g-item 已经包含一个建筑物");}} else if (e.target.id === 'many-buildings' && draggedItem.parentElement.parentElement.id !== 'many-buildings') {manyBuildings.appendChild(draggedItem);}} else if (draggedItem.classList.contains('item')) {// 复制 itemconst clone = draggedItem.cloneNode(true);if (e.target.classList.contains('g-item')) {// 检查目标 g-item 是否已经包含一个 b-itemif (e.target.querySelector('.b-item') === null) {e.target.appendChild(clone);} else {console.log("目标 g-item 已经包含一个建筑物");}} else if (e.target.id === 'many-buildings' && draggedItem.parentElement.parentElement.id !== 'many-buildings') {manyBuildings.appendChild(clone);}}}}</script></body></html>

 

http://www.xdnf.cn/news/14981.html

相关文章:

  • 【wps】 excel 删除重复项
  • 【Spring Boot】HikariCP 连接池 YAML 配置详解
  • Tomcat镜像实战:掌握Dockerfile的编写以及发布项目
  • day47-tomcat
  • 《Spring 中上下文传递的那些事儿》Part 4:分布式链路追踪 —— Sleuth + Zipkin 实践
  • Python 闭包(Closure)实战总结
  • 【PyCharm 2025.1.2配置debug】
  • 分类树查询性能优化:从 2 秒到 0.1 秒的技术蜕变之路
  • 低代码实战训练营教学大纲 (10天)
  • [特殊字符] 电子机械制动(EMB)产业全景分析:从技术演进到千亿市场爆发
  • 网络编程学习路线图
  • Python 爬虫实战 | 国家医保
  • OpenBayes 教程上新丨医疗VLM新突破!HealthGPT对复杂MRI模态理解准确率达99.7%,单一模型可处理多类生成任务
  • 一天两道力扣(1)
  • 高效打字辅助工具,解决符号输入难题
  • 使用pdf box去水印
  • Part 0:射影几何,变换与估计-第三章:3D射影几何与变换
  • 分享|大数据分析师职业技术证书报考指南
  • 推荐系统中如果有一个上古精排模型,后续如何优化?
  • 遇到该问题:kex_exchange_identification: read: Connection reset`的解决办法
  • github在线图床
  • PostgreSQL中的rank()窗口函数:实用指南与示例
  • 浏览器原生控件上传PDF导致hash值不同
  • 制作一款打飞机游戏76:分数显示
  • 微软广告推出新的精细资产级别审核
  • 无代码自动化测试工具介绍
  • SpringBoot控制反转
  • CentOS 6操作系统安装
  • 05.SpringBoot拦截器的使用详解
  • 玄机——某学校系统中挖矿病毒应急排查