知道如何使这个脚本触摸友好吗?

时间:2013-09-03 17:45:02

标签: javascript android jquery ios touchscreen

一些背景信息:这个简单的游戏http://deslimmespeeltuin.nl/speeltuin.htm将成为儿童教育项目的一部分。它基于Marco Kuiper的漂亮宝丽来查看器(http://demo.marcofolio.net/polaroid_photo_viewer)。原始脚本有点旧,我不得不更新其jquery库引用,以便在最新的IE上工作。但是,它不适用于触摸设备(Android / iOS),这是一个真正的遗憾。虽然它看起来很好,但你不能拖延形状。

我不是程序员。马可自己想帮忙,但太忙了。有人有线索吗?任何建议都会很棒。

1 个答案:

答案 0 :(得分:0)

如果将其添加到HTML文件中,它应该可以工作:

<script>
function touchHandler(event) {
    var touch = event.changedTouches[0];

    var simulatedEvent = document.createEvent("MouseEvent");
        simulatedEvent.initMouseEvent({
        touchstart: "mousedown",
        touchmove: "mousemove",
        touchend: "mouseup"
    }[event.type], true, true, window, 1,
        touch.screenX, touch.screenY,
        touch.clientX, touch.clientY, false,
        false, false, false, 0, null);

    touch.target.dispatchEvent(simulatedEvent);
    event.preventDefault();
}

function init() {
    document.addEventListener("touchstart", touchHandler, true);
    document.addEventListener("touchmove", touchHandler, true);
    document.addEventListener("touchend", touchHandler, true);
    document.addEventListener("touchcancel", touchHandler, true);
}

// Call the init function when the document has finished loading.
$(document).ready(function(){
    init();
});
</script>

这最初来自这里:Javascript Drag and drop for touch devices 我通过控制台运行代码后在Chrome中模拟触摸事件对此进行了测试,并在您的示例网站上运行。