Я пробовал все, чтобы получить touchstart
для обновления touch.radiusX
постоянно... но ничего не работает.
По какой-то причине setInterval не работает.
То, что я пытаюсь достичь
Я пытаюсь имитировать force touch
через постоянное обновление touch.radiusX
пока touchstart
touch.radiusX
touchstart
.
Берегись
Это для кнопок веб-сайта.
Да, я знаю о touch.force
Но я не хочу touch.force
из-за этого не работает на Android.
Что я знаю
Я знаю, что touch.radiusX
поддерживается как для android
и для iOS
.
Так что в принципе, если я смогу получить постоянное обновление touch.radiusX
а touchstart
Я могу имитировать force.touch
на обеих платформах.
Что я имею
На данный момент я могу получить touch.radiusX
.
Но только один раз за один touchstart
.
Мне нужно, чтобы он был постоянно, пока пользователь touching
элемента.
On touchstart
every X-milliseconds
element.innerHTML = touch.radiusX
On touchend
reset to 0
var src = document.getElementById("myElement");
src.addEventListener('touchstart', rotate);
function rotate(e) {
var touch = e.changedTouches.item(0);
e.preventDefault();
src.innerHTML = touch.radiusX
};
<div id="myElement" style="width: 100%; height: 100%; background: #f5f5f5; position: fixed;">
</div>
Это может работать, если радиус X обновляется до изменений:
var src = document.getElementById("myElement");
src.addEventListener('touchstart', rotate, true);
function rotate(e) {
var touch = e.changedTouches.item(0);
e.preventDefault();
setTimeout(function detect(){
src.innerHTML = touch.radiusX;
if(touch. .radiusX===0){return; };
detect();
}, 16);
};
<div id="myElement" style="width: 100%; height: 100%; background: #f5f5f5; position: fixed;">
</div>