Хорошо, поэтому я делаю симулятор лифта. Buisness Logi c все в порядке, я использую очереди. У меня проблема с перемещением лифта с одного этажа на другой в очереди. Я использую HTML, CSS и JavaScript / Jquery. Пока что два подхода, которые я пробовал, это одушевленный метод Jquery и перевод CSS. Я пока не смог найти достойного ответа. Моя последняя попытка связана с использованием невидимых элементов в DOM, чтобы получить координаты для перемещения лифта. Я предоставлю фрагменты кода для дальнейшего объяснения.
Это изображение веб-страницы, как вы видите, мне нужно иметь возможность перемещать Лифт на любой этаж в любое время.
// Called when user selects the Start button
$('#btn-start').click(function() {
// Start the Simulation
let destination = $('#second-floor').offset();
$("#elevator").animate( {right: destination.left, bottom: destination.top}, 4000, "linear", function(){console.log("Elevator finished moving")} );
//});
});
.elevator-visual {
width: 55%;
}
.elevator {
position: relative;
max-width: 10vw;
margin-left: 6vw;
}
.floor {
position: relative;
}
.hidden-destination {
position: absolute;
bottom: 10vw;
left: 11vw;
background: none;
height: 5px;
width: 5px;
}
.floor-bound {
width: 75%;
margin-bottom: 15vw;
}
#first-floor,
#second-floor {
margin-bottom: 0;
}
.floor-title {
margin: 0;
padding: 0;
text-align: right;
color: #777;
margin-right: 6vw;
}
#floor-four-lable {
margin-top: 15vw;
}
.btn-start{
position: static;
border: none;
padding: 8px 21px;
vertical-align: middle;
text-align: center;
cursor: pointer;
border-radius: 5%;
font-size: 24px;
background-color: #b77110;
color: white;
margin-left: 15px;
margin-top: 10px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<!-- Elevator Diagram -->
<div class="elevator-visual">
<div class="floor">
<div class="hidden-destination"></div>
<p id="floor-four-lable" class="floor-title">Floor 4</p>
<hr id="forth-floor" class="floor-bound" />
</div>
<div class="floor">
<div class="hidden-destination"></div>
<p class="floor-title">Floor 3</p>
<hr id="third-floor" class="floor-bound" />
</div>
<div class="floor">
<div class="hidden-destination"></div>
<p class="floor-title">Floor 2</p>
<hr id="second-floor" class="floor-bound" />
</div>
<img id="elevator" class="elevator" src="https://via.placeholder.com/150" alt="" />
<div class="floor">
<div class="hidden-destination"></div>
<p class="floor-title">Floor 1</p>
<hr id="first-floor" class="floor-bound" />
</div>
<button id="btn-start" class="btn-start">Start</button>
</div>
Как вы можете видеть в JS, я переключаю некоторые классы при нажатии кнопки запуска, затем я беру информацию о месте назначения из верхней части очереди, и сейчас я застрял на анимации лифта (моя последняя попытка выглядит глупо), чтобы иметь возможность go на любой этаж, который я хочу.
Вот также ссылка в хранилище, если вы хотите клонировать и открыть с помощью live-сервера: https://github.com/Amalazing/Elevator-Simulator
Спасибо за ваше время и помощь.