我的JavaScript代码似乎阻止了移动设备?

时间:2015-01-31 17:26:36

标签: javascript events mobile key swipe

我在一个页面中有以下代码。 目前在桌面上运行正常。 向左箭头向后导航。右箭头向前。我想在家里添加一些东西并结束。

代码的“滑动”部分是我在网络搜索后得到的内容,除了“// DO STUFF HERE”之后的几行(if ...... else ...)。

在移动设备上进行测试(Galagy S4上的Firefox):该网站运行良好,除了这个包含代码的唯一网站。

结果:滑动不工作但也点击(不确定它是否被称为点击移动设备)不起作用,调整大小不起作用...换句话说,卡在页面上。

我没有太多工具可以在移动设备上进行调试。

function checkKey(event) {
    var keyEvent = event || window.event,
        keycode = (keyEvent.which) ? keyEvent.which : keyEvent.keyCode;
    if(keycode == 37)
        NavigateBackward();
    else if(keycode == 39)
        NavigateForward();
    else
        {
        alert(keycode);
        return true
        }
    return false;
}
document.onkeypress = checkKey;


var swipeFunc = {//Source:https://gist.github.com/localpcguy/1373518
        touches : {
            "touchstart": {"x":-1, "y":-1}, 
            "touchmove" : {"x":-1, "y":-1}, 
            "touchend"  : false,
            "direction" : "undetermined"
        },
        touchHandler: function(event) {
            var touch;
            if (typeof event !== 'undefined'){  
                event.preventDefault(); 
                if (typeof event.touches !== 'undefined') {
                    touch = event.touches[0];
                    switch (event.type) {
                        case 'touchstart':
                        case 'touchmove':
                            swipeFunc.touches[event.type].x = touch.pageX;
                            swipeFunc.touches[event.type].y = touch.pageY;
                            break;
                        case 'touchend':
                            touches[event.type] = true;
                            if (swipeFunc.touches.touchstart.x > -1 && swipeFunc.touches.touchmove.x > -1) {
                                swipeFunc.touches.direction = swipeFunc.touches.touchstart.x < swipeFunc.touches.touchmove.x ? "right" : "left";

                                // DO STUFF HERE
                                if(swipeFunc.touches.direction === "left")
                                        alert(swipeFunc.touches.direction); 
                                    else if(swipeFunc.touches.direction === "left")
                                        alert(swipeFunc.touches.direction);
                                    else
                                        return true;
                                return false;
                            }
                        default:
                            break;
                    }
                }
            }
        },
        init: function() {
            document.addEventListener('touchstart', swipeFunc.touchHandler, false); 
            document.addEventListener('touchmove', swipeFunc.touchHandler, false);  
            document.addEventListener('touchend', swipeFunc.touchHandler, false);
        }
    };
swipeFunc.init();

0 个答案:

没有答案