基于JS实现小区楼的电梯运行程序

 更新时间:2025年01月20日 14:13:00   作者:王铁柱6  
本文介绍了如何使用JavaScript实现一个简单的小区楼电梯运行程序,用户可以通过点击楼层来选择目标楼层,并模拟电梯的上下行,文章还提示了如何扩展该程序,例如添加更多楼层、优化移动逻辑和添加动画效果,感兴趣的朋友一起看看吧

在前端开发中,实现一个简单的小区楼电梯运行程序可以通过模拟电梯的基本行为来完成。以下是一个使用JavaScript实现的简单电梯模拟程序,它允许用户选择楼层并模拟电梯的上下行。

HTML部分(用于创建用户界面):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>电梯模拟程序</title>
    <style>
        #elevator {
            width: 100px;
            height: 100px;
            background-color: grey;
            position: absolute;
            left: 50px;
            top: 50px;
            text-align: center;
            line-height: 100px;
            color: white;
        }
        .floor {
            height: 50px;
            width: 100%;
            border-bottom: 1px solid black;
            text-align: center;
            line-height: 50px;
        }
    </style>
</head>
<body>
    <div id="elevator">1</div>
    <div id="floors">
        <div class="floor" onclick="requestFloor(1)">1</div>
        <div class="floor" onclick="requestFloor(2)">2</div>
        <div class="floor" onclick="requestFloor(3)">3</div>
        <!-- 添加更多楼层 -->
    </div>
    <script src="elevator.js"></script>
</body>
</html>

JavaScript部分(用于实现电梯逻辑):

let currentFloor = 1; // 电梯当前所在楼层
let targetFloor = 1; // 电梯目标楼层
const elevator = document.getElementById('elevator'); // 电梯元素
const floors = document.querySelectorAll('.floor'); // 所有楼层元素
let isMoving = false; // 电梯是否正在移动
const moveSpeed = 500; // 电梯移动速度(毫秒)
// 更新电梯显示楼层
function updateElevatorDisplay() {
    elevator.textContent = currentFloor;
}
// 移动电梯到指定楼层
function moveToFloor(floor) {
    if (isMoving || floor === currentFloor) return; // 如果电梯正在移动或已在目标楼层,则不执行移动
    isMoving = true; // 设置电梯为移动状态
    const distance = Math.abs(floor - currentFloor) * 50; // 计算移动距离(每个楼层高度为50px)
    const direction = floor > currentFloor ? 'down' : 'up'; // 判断移动方向
    const finalTop = 50 + (floor - 1) * 50; // 计算电梯最终位置(顶部偏移量)
    elevator.style.transition = `top ${moveSpeed}ms linear`; // 设置过渡效果
    elevator.style.top = `${finalTop}px`; // 更新电梯位置
    // 在移动结束后更新当前楼层和状态
    setTimeout(() => {
        currentFloor = floor;
        isMoving = false;
        updateElevatorDisplay();
    }, moveSpeed);
}
// 请求电梯到指定楼层
function requestFloor(floor) {
    if (floor === currentFloor) return; // 如果已在请求楼层,则不执行操作
    targetFloor = floor; // 设置目标楼层
    if (!isMoving) { // 如果电梯当前未移动,则立即开始移动
        moveToFloor(targetFloor);
    } else { // 如果电梯正在移动,则在当前移动结束后开始新的移动(简化逻辑,不考虑方向优化)
        setTimeout(() => {
            moveToFloor(targetFloor);
        }, moveSpeed);
    }
}

这个简单的电梯模拟程序允许用户通过点击楼层来选择目标楼层,并模拟电梯的上下行。你可以根据需要扩展这个程序,例如添加更多楼层、优化电梯移动逻辑(考虑同方向连续移动的情况)、添加电梯门开关动画等。

到此这篇关于请用js实现一个简单的小区楼的电梯运行程序的文章就介绍到这了,更多相关js电梯运行程序内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JavaScript实现图片懒加载的六种方案

    JavaScript实现图片懒加载的六种方案

    懒加载是一种对网页性能优化的方式,比如,当访问一个网页的时候,优先显示可视区域的图片而不是一次加载全部的图片,当需要显示时,再发送请求加载图片,本文给大家介绍了JavaScript实现图片懒加载的六种方案,需要的朋友可以参考下
    2025-05-05
  • 如何用CocosCreator制作微信小游戏

    如何用CocosCreator制作微信小游戏

    这篇文章主要介绍了如何用CocosCreator制作微信小游戏,从下载工具到配置,最后连接微信小游戏预览,一步步很详细,希望读者们仔细看一下
    2021-04-04
  • 微信小程序实现tab页面切换功能

    微信小程序实现tab页面切换功能

    这篇文章主要介绍了微信小程序实现tab页面切换功能,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • fiv.js实现flv文件blob流实时播放的项目实践

    fiv.js实现flv文件blob流实时播放的项目实践

    本文主要介绍了fiv.js实现flv文件blob流实时播放的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • ES6使用新特性Proxy实现的数据绑定功能实例

    ES6使用新特性Proxy实现的数据绑定功能实例

    这篇文章主要介绍了ES6使用新特性Proxy实现的数据绑定功能,结合具体实例形式分析了ES6使用Proxy实现数据绑定具体原理、操作步骤与相关注意事项,需要的朋友可以参考下
    2020-05-05
  • JS实现至少包含字母、大小写数字、字符的密码等级的两种方法

    JS实现至少包含字母、大小写数字、字符的密码等级的两种方法

    这篇文章主要介绍了JS实现至少包含字母、大小写数字、字符的密码等级的两种方法,可实现有效检测用户密码等级的功能,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • Js 冒泡事件阻止实现代码

    Js 冒泡事件阻止实现代码

    当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发
    2013-01-01
  • js获取页面description的方法

    js获取页面description的方法

    这篇文章主要介绍了js获取页面description的方法,涉及javascript操作页面元素的相关技巧,需要的朋友可以参考下
    2015-05-05
  • 一文带你搞懂JS中六种For循环的使用

    一文带你搞懂JS中六种For循环的使用

    for 循环是出现最早,也是应用最普遍的一个遍历,能够满足绝大多数的遍历。可以遍历 数组、对象、字符串。本文将详细为大家介绍JS中的六种For循环的使用,需要的可以参考一下
    2022-04-04
  • JavaScript 浏览器兼容性总结及常用浏览器兼容性分析

    JavaScript 浏览器兼容性总结及常用浏览器兼容性分析

    本文是脚本之家小编日常整理些关于js兼容性问题,及IE与Firefox等常用浏览器的兼容性分析,对js浏览器兼容性相关知识感兴趣的朋友一起学习吧
    2016-03-03

最新评论