在chromemove事件的死区在镀铬物

时间:2014-01-04 04:09:43

标签: android google-chrome

我注意到当我尝试将某些项目拖动到移动铬中时,touchmove事件在touchstart之后出现了一些差距。 我写了脚本来找出这个像素的差距:

`     盲区

<script type="text/javascript">
    window.addEventListener('load', function() {

        var box = document.getElementById("box");
        var status = document.getElementById("status");

        var startPoint = 0;
        var moveStart = false;

        box.addEventListener('touchstart', function(e) {
            startPoint = parseInt(e.changedTouches[0].clientX);
            e.preventDefault();
        });

        box.addEventListener('touchmove', function(e) {
            if(moveStart) return;
            moveStart = true;
            status.innerHTML = "deadZone: " + (e.changedTouches[0].clientX - startPoint) + "px";
            e.preventDefault();
        });

        box.addEventListener('touchend', function(e) {                                                                                                                                                         
            e.preventDefault();                                                                                                                                                                                
            moveStart = false;                                                                                                                                                                                 
        });                                                                                                                                                                                                    

    });                                                                                                                                                                                                        
</script>                                                                                                                                                                                                      

<meta name="viewport" content="user-scalable=no, width=device-width, initial-scale=1, maximum-scale=1">                                                                                                        



    
     `

我的结果是:右/左拖动14-30px,上/下2-10px。看起来盒子在移动它的开始时就被拍到了smthg。 我怎样才能避免这种情况并从真正的起点开始跟踪touchmove?

1 个答案:

答案 0 :(得分:0)

这是Chrome for Android(M31 - 当前版本)中的一个错误。幸运的是,它很快就会修复,应该在M33或M34:https://code.google.com/p/chromium/issues/detail?id=323677

基本摘要是Android会抑制'slop'事件,以便您最后一次阻止滚动的机会总是第一次触摸移动。