在移动Safari上拖动触摸事件停止触发 - ipad html5

时间:2012-08-09 17:55:20

标签: javascript ipad html5 ios5 webkit

当我为触摸事件(例如touchmove和touchstart

)添加事件侦听器时
        document.addEventListener("touchstart", function(event){
            event.preventDefault();
            document.getElementById("fpsCounter").innerHTML = "touch start";
            trace("touch start");
        }, false);
        document.addEventListener("touchmove", function(event){
            event.preventDefault();
            var x = event.touches[0].pageX - getCanvasOffset().offsetLeft; 
            var y = event.touches[0].pageY - getCanvasOffset().offsetTop;

            document.getElementById("fpsCounter").innerHTML = "touch touchmove "+x+"  "+y;
            trace("touch touchmove");
        }, false);
        document.addEventListener("touchend", function(event){
            event.preventDefault();
            document.getElementById("fpsCounter").innerHTML = "touch end";
            trace("touch touch end");
        }, false);
        document.addEventListener("touchcancel", function(event){
            event.preventDefault();
            document.getElementById("fpsCounter").innerHTML = "touch cancel";
            trace("touch touch cancel");
        }, false);

    }

touchMove工作正常,直到我开始向下移动,因为整个html页面开始被safari向下滚动。当我发布时,html页面会弹回原来的位置。 html页面中没有元素溢出到ipad的边界之外。 我怎么能阻止浏览器拖动HTML页面功能?我试试event.preventDefault()没有运气

1 个答案:

答案 0 :(得分:0)

您可以尝试取消事件(移动而不仅仅是使用preventDefault)

event.cancelBubble = true;
event.returnValue = false;
if (event.stopPropagation) event.stopPropagation();
if (event.preventDefault) event.preventDefault();