网站首页 > 知识剖析 正文
也许是我关键词没有写对,不过豆包后面也说了,以下是一个简单的 HTML 在线象棋示例源码,此示例借助 HTML、CSS 和 JavaScript 实现基本的棋盘显示和棋子移动模拟,不过它未涵盖完整的象棋规则逻辑,仅作基础演示。
对我来说,达不到我需求,至少我需要有棋盘效果
先上图:
我down下源码运行:
效果:
相关源码:
html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>在线象棋</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div id="chessboard"></div>
<script src="script.js"></script>
</body>
</html>
css:
#chessboard {
display: grid;
grid-template-columns: repeat(9, 50px);
grid-template-rows: repeat(10, 50px);
gap: 1px;
background-color: #ccc;
width: fit-content;
}
.square {
width: 50px;
height: 50px;
background-color: white;
display: flex;
justify-content: center;
align-items: center;
font-size: 24px;
}
.square.black {
background-color: #eee;
}
js:
// 初始化棋盘
const chessboard = document.getElementById('chessboard');
const pieces = [
'車', '馬', '象', '仕', '帥', '仕', '象', '馬', '車',
'', '', '', '', '', '', '', '', '',
'', '砲', '', '', '', '', '', '砲', '',
'兵', '', '兵', '', '兵', '', '兵', '', '兵',
'', '', '', '', '', '', '', '', '',
'', '', '', '', '', '', '', '', '',
'卒', '', '卒', '', '卒', '', '卒', '', '卒',
'', '炮', '', '', '', '', '', '炮', '',
'', '', '', '', '', '', '', '', '',
'車', '马', '相', '士', '将', '士', '相', '马', '車'
];
for (let i = 0; i < 90; i++) {
const square = document.createElement('div');
square.classList.add('square');
if ((Math.floor(i / 9) + i % 9) % 2 === 1) {
square.classList.add('black');
}
square.textContent = pieces[i];
chessboard.appendChild(square);
}
// 简单的棋子移动模拟
let selectedPiece = null;
chessboard.addEventListener('click', function (event) {
const target = event.target;
if (target.classList.contains('square')) {
if (selectedPiece === null) {
if (target.textContent!== '') {
selectedPiece = target;
target.style.backgroundColor = 'yellow';
}
} else {
if (target!== selectedPiece) {
target.textContent = selectedPiece.textContent;
selectedPiece.textContent = '';
selectedPiece.style.backgroundColor = (selectedPiece.classList.contains('black'))? '#eee' : 'white';
selectedPiece = null;
}
}
}
});
- 上一篇: 零基础学习HTML之html框架内嵌框架和head头信息设置
- 下一篇: HTML 简介
猜你喜欢
- 2025-05-14 HTML5教程从《HTML+CSS基础课程》学习笔记中的技巧
- 2025-05-14 HTML 简介
- 2025-05-14 零基础学习HTML之html框架内嵌框架和head头信息设置
- 2025-05-14 nodejs搭建服务器显示静态html页面
- 2025-05-14 一个简单的个人网站模板
- 2025-05-14 DinkToPdf: .Net轻松搞定Html转PDF生成,几分钟上手!
- 2025-05-14 8行代码实现一个websoket
- 2025-05-14 在Javaweb中实现发送简单邮件
- 2025-05-14 技巧:PHP版本怎样隐藏在Linux服务器
- 2025-05-14 Python解析HTML方法指南
- 05-14HTML5教程从《HTML+CSS基础课程》学习笔记中的技巧
- 05-14HTML 简介
- 05-14豆包给我输出的html在线象棋源码(有点简单)
- 05-14零基础学习HTML之html框架内嵌框架和head头信息设置
- 05-14nodejs搭建服务器显示静态html页面
- 05-14一个简单的个人网站模板
- 05-14DinkToPdf: .Net轻松搞定Html转PDF生成,几分钟上手!
- 05-148行代码实现一个websoket
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)