目录

1.HTML 构建墙面

创建一个 HTML 格式,包含一个 DOMContentLoaded 和 DOMContentLoadedEnd 的事件 listener。 初始化变量: 定义墙的高度 max_height 和梯子的长度 length。 初始化 current_height 为墙的底部()。 事件 listener: 当...
  • 创建一个 HTML 格式,包含一个 DOMContentLoaded 和 DOMContentLoadedEnd 的事件 listener。
  1. 初始化变量:

    • 定义墙的高度 max_height 和梯子的长度 length。
    • 初始化 current_height 为墙的底部()。
  2. 事件 listener:

    • 当墙的高度变化时,调用 handleWallChange 函数,更新 current_height。
  3. 绘制上门网:

    使用 SVG 绘制上门网的路线,根据当前的高度和角度,计算上门网的底部坐标。

  4. 绘制墙面:

    使用 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 绘制墙面,显示墙的高度和当前的位置。

使用示例

  1. 调整墙的高度:

    按下滑块或使用键盘键,将墙的高度从底部移动到顶部。

  2. 调整角度:

    使用滑块或键盘键,将梯子的倾斜角度调整到合适的位置。

  3. 查看上门网位置:

    在墙面上看到上门网的路线,显示梯子接触墙上的位置。

这个工具能够帮助用户将梯子上的上门网放置到墙面上,同时调整角度,以确保梯子的安全和稳定性。

1.HTML 构建墙面

扫描二维码推送至手机访问。

本文转载自互联网,如有侵权,联系删除。

本文链接:https://superfast-vpn.cn/post/3289.html

扫描二维码手机访问

文章目录
网站地图