function touchEvtResize() {
var block = document.getElementsByClassName("top-three-quarters"),
slider = document.getElementsByClassName("slider");
slider.addEventListener('touchstart', function (e) {
let dragY = e.clientY;
document.addEventListener('touchmove', function (e) {
block.style.height = block.offsetHeight + e.clientY - dragY + "px";
dragY = e.clientY;
});
docuemnt.addEventListener('touchend', function (e) { });
});
}
.top-three-quarters {
overflow-y: auto;
resize: vertical;
}
.bottom-quarter {
flex: 1;
max-height: 100%;
min-height: 5%;
}
.slider {
background-color: #dee2e6;
cursor: row-resize;
user-select: none;
height: 10px;
}
<div class = "top-three-quarters">
</div>
<div class = "bottom-quarter">
<div class = "slider">
</div>
</div>
У меня есть этот код, который работает с событиями мыши. Но я хотел бы заставить его работать с сенсорными событиями для сенсорных экранов. Я проводил исследования и не смог найти ничего полезного. Я все еще новичок в JS, поэтому любые рекомендации будут полезны. Желательно без библиотек, если это возможно. У меня есть представление о том, как это выглядит с событиями мыши.
<div class = "top-three-quarters">
</div>
<div class = "bottom-quarter">
<div class = "slider">
</div>
</div>
.top-three-quarters {
overflow-y: auto;
resize: vertical;
}
.bottom-quarter {
flex: 1;
max-height: 100%;
min-height: 5%;
}
.slider {
background-color: #dee2e6;
cursor: row-resize;
user-select: none;
height: 10px;
}
let block = document.querySelector(".top-three-quarters"),
slider = document.querySelector(".slider");
slider.onmousedown = function dragMouseDown(e) {
let dragX = e.clientY;
document.onmousemove = function onMouseMove(e) {
block.style.height = block.offsetHeight + e.clientY - dragX + "px";
dragX = e.clientY;
}
document.onmouseup = () => document.onmousemove = document.onmouseup = null;
}
Я пробовал подобные примеры, такие как Пример 1 и пример 2, но безуспешно. Я не прошу вас, ребята, написать для меня код, а просто дам несколько рекомендаций и советов, чтобы я мог решить эту проблему!
@AHaworth Я пытался добавить addEventListener('touchstart', function(e)) для замены событий мыши, а также touchmove, но безуспешно.
Пожалуйста, покажите код, который вы пробовали, желательно в виде работоспособного фрагмента (<> в редакторе).
@AHaworth Я добавил способ, которым я пробовал, с событиями касания, который у меня не сработал.
Мне удалось заставить это работать с помощью какого-то блазора. Я просто выполнил функцию на С# и передал событие из blazor в js, чтобы избежать событий касания в javascript.
Ваш ответ можно улучшить, добавив дополнительную вспомогательную информацию. Пожалуйста, отредактируйте , добавив дополнительную информацию, например цитаты или документацию, чтобы другие могли подтвердить правильность вашего ответа. Более подробную информацию о том, как писать хорошие ответы, вы можете найти в справочном центре.
Вы читали о сенсорных событиях? Вам нужно будет решить, какие из них вы хотите соответствовать событиям мыши.