如何让touchstart不断更新touch.radiusX? ES6

时间:2017-11-08 03:06:26

标签: javascript android ios ecmascript-6

我已经尝试了一切让touchstart不断更新touch.radiusX ......但没有任何效果。

  

出于某种原因 setInterval 无效。



我想要实现的目标
我在force touch处于活动状态时,通过touch.radiusX的不断更新来尝试模拟touchstart


抬头
这是网站按钮 是的我知道touch.force
但我不希望touch.force由于它不能在android上工作

我所知道的
我知道touch.radiusXandroid都支持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>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

这可能会假设radiusX更新为更改:

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>