Я начал делать меню, чтобы при свайпе влево, открывалось меню, а при свайпе вправо закрывалось. Но я не понимаю, как мне определять продолжительность свайпа и направление движения. Я нашёл свойство timeStamp
, я думаю это как-то связано со временем, но оно выдаёт непонятные цифры, не понимаю что они значат. Подскажите
document.addEventListener('touchmove', (event) => {
console.log(event);
});
Так?
let x = null;
document.addEventListener('touchstart', e => x = e.touches[0].clientX);
document.addEventListener('touchmove', e => {
if (!x) return;
x = x - e.touches[0].clientX < 0 ? 0 : -90;
test.style.transform = `translate(${x}%,0)`;
x = null;
});
#test {
transition: 0.5s;
position: fixed;
top: 0px;
left: 0px;
width: 150px;
height: 100px;
background: wheat;
text-align: center;
}
<div id="test">menu example<br>swipe left to hide</div>
Версия для PCшников
зажать и потащить
let lastPos;
let menu = document.querySelector(".menu");
window.addEventListener("mousedown", e => {
lastPos = e.clientX;
window.addEventListener("mousemove", showMenu);
});
function showMenu(e){
if(event.buttons == 0){
window.removeEventListener("mousemove", showMenu);
}else {
menu.style.width = (e.clientX > lastPos) ? "100px" : "0px";
}
}
.menu{
position: absolute;
top: 0;
left: 0;
width: 0px;
height: 300px;
background-color: cyan;
transition: all 1s;
}
<div class="menu">
</div>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
есть фрагмент кода, который возвращает геоданные пользователя(широта, долгота) в таком варианте:
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Написать функцию, которая принимает двузначное число и возвращает его в текстовом виде