1.HTML 构建墙面
nmb3583344SuperFast加速器官网2026-07-17290
创建一个 HTML 格式,包含一个 DOMContentLoaded 和 DOMContentLoadedEnd 的事件 listener。 初始化变量: 定义墙的高度 max_height 和梯子的长度 length。 初始化 current_height 为墙的底部()。 事件 listener: 当...
- 创建一个 HTML 格式,包含一个 DOMContentLoaded 和 DOMContentLoadedEnd 的事件 listener。
-
初始化变量:
- 定义墙的高度
max_height和梯子的长度length。 - 初始化
current_height为墙的底部()。
- 定义墙的高度
-
事件 listener:
- 当墙的高度变化时,调用
handleWallChange函数,更新current_height。
- 当墙的高度变化时,调用
-
绘制上门网:
使用 SVG 绘制上门网的路线,根据当前的高度和角度,计算上门网的底部坐标。
-
绘制墙面:
使用 SVG 绘制墙面,显示墙的高度和当前的位置。
实现代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">梯子上外网工具</title>
<style>
body {
margin: 0;
padding: 2px;
}
#root {
width: 1%;
height: 4px;
background-color: #fff;
}
.container {
position: relative;
width: 1%;
height: 1%;
}
#handle {
position: absolute;
cursor: pointer;
}
</style>
</head>
<body>
<div id="root">
<div id="container">
<div id="handle"></div>
<div id="result"></div>
</div>
</div>
<script>
const max_height = 7; // 墙的高度
const length = 5; // 梯子的长度
let current_height = 0;
function handleWallChange(event) {
const rect = document.getElementById('container').offsetRect;
const height = event.target.height;
const width = window.innerWidth;
if (height > max_height) {
current_height = max_height;
} else if (height < 0) {
current_height = 0;
}
// 计算上门网的位置
const d = Math.sqrt(length * length - (height - current_height) * (height - current_height));
const x = d;
const y = height - current_height;
// 绘制上门网
const svg = document.createElementNS("http://www.w3.org/2/svg", "svg");
const上门Net = document.createElementNS("http://www.w3.org/2/svg", "path");
svg.append `<path id="上门Net" fill="white" viewBox=" 0 ${height} ${width}"></path}`);
svg.append(`
<polygon id="上门Net" fill="white" points="1,1,1,1,1,1"/>
`<path id="上门Net" fill="white" stroke="#333" stroke-width="2"/>
${x}px, ${y}px ${'(', x, y, ')'}
${x + 2}px, ${y}px ${'(', x + 2, y, ')'}
${x - 2}px, ${y}px ${'(', x - 2, y, ')'}
`>
<div id="result"></div>
}
</script>
</body>
</html>
实现说明
- HTML 构建:创建一个简单的 HTML 格式,包含一个根节点,用于显示整个界面。
- 事件 listener:当墙的高度变化时,调用
handleWallChange函数,更新current_height。 - 变量初始化:定义墙的高度、梯子的长度、当前的高度和绘制上门网的变量。
- 绘制上门网:使用 SVG 绘制上门网的路线,根据当前的高度和角度,计算上门网的底部坐标。
- 绘制墙面:使用 SVG 绘制墙面,显示墙的高度和当前的位置。
使用示例
-
调整墙的高度:
按下滑块或使用键盘键,将墙的高度从底部移动到顶部。
-
调整角度:
使用滑块或键盘键,将梯子的倾斜角度调整到合适的位置。
-
查看上门网位置:
在墙面上看到上门网的路线,显示梯子接触墙上的位置。
这个工具能够帮助用户将梯子上的上门网放置到墙面上,同时调整角度,以确保梯子的安全和稳定性。

相关文章








