<!DOCTYPE html>
<html>
<head>
	<title>终端展示页面</title>
	<style type="text/css">
		.container {
			display: flex;
			flex-wrap: wrap;
			justify-content: center;
			align-items: center;
			height: 100vh;
		}
<pre><code>	.terminal {
		position: relative;
		width: 200px;
		height: 200px;
		margin: 20px;
		background-color: #fff;
		border: 1px solid #000;
		border-radius: 5px;
		display: flex;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		font-size: 24px;
	}

	.terminal .status {
		position: absolute;
		top: -20px;
		right: -20px;
		width: 40px;
		height: 40px;
		border-radius: 50%;
		background-color: #fff;
		border: 2px solid #000;
		display: flex;
		justify-content: center;
		align-items: center;
		font-size: 18px;
	}

	.terminal .message {
		margin-top: 20px;
		padding: 10px;
		border: 1px solid #000;
		border-radius: 5px;
		text-align: center;
		display: none;
	}

	.terminal.active .status {
		background-color: green;
		color: #fff;
		border-color: green;
	}

	.terminal.inactive .status {
		background-color: red;
		color: #fff;
		border-color: red;
	}

	.terminal.active .message {
		display: block;
	}
&lt;/style&gt;
</code></pre>
</head>
<body>
	<div class="container">
		<div class="terminal" data-id="1">
			<div class="status"></div>
			<div class="message">终端1状态:活跃</div>
		</div>
		<div class="terminal" data-id="2">
			<div class="status"></div>
			<div class="message">终端2状态:活跃</div>
		</div>
		<div class="terminal" data-id="3">
			<div class="status"></div>
			<div class="message">终端3状态:活跃</div>
		</div>
		<div class="terminal" data-id="4">
			<div class="status"></div>
			<div class="message">终端4状态:活跃</div>
		</div>
		<div class="terminal" data-id="5">
			<div class="status"></div>
			<div class="message">终端5状态:活跃</div>
		</div>
	</div>
<pre><code>&lt;script type=&quot;text/javascript&quot;&gt;
	const terminals = document.querySelectorAll('.terminal');

	function updateTerminalStatus(id, isActive) {
		for (let i = 0; i &lt; terminals.length; i++) {
			const terminal = terminals[i];
			if (terminal.dataset.id == id) {
				terminal.classList.remove('active', 'inactive');
				terminal.classList.add(isActive ? 'active' : 'inactive');
				terminal.querySelector('.message').innerText = `终端${id}状态:${isActive ? '活跃' : '非活跃'}`;
				break;
			}
		}
	}

	// 模拟串口收到消息
	setInterval(() =&gt; {
		const id = Math.ceil(Math.random() * 5);
		const isActive = Math.random() &gt;= 0.5;
		updateTerminalStatus(id, isActive);
	}, 3000);
&lt;/script&gt;
</code></pre>
</body>
</html
写个网页要求展示5个终端终端边上有文字框电脑串口收到对应的文字时终端状态变化

原文地址: https://www.cveoy.top/t/topic/gs8F 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录