赢取8个应用程序在手指滑动时触发事件

时间:2012-09-18 12:07:36

标签: javascript touch windows-runtime winjs

当用户在指定的div上滑动手指时,我想触发一个事件。 例如:当用户在div上滑动手指时,应该调用特定的函数。

2 个答案:

答案 0 :(得分:1)

这将添加事件处理程序:

document.getElementById('divId').addEventListener('mspointermove', handler, false);

然后你必须要识别它是触摸事件还是鼠标事件。

function handler(event) {
    if (eventObject.pointerType === 2) {
        // touch event
    }
}

以下是触摸事件的complete guide。 msgesturestart / change / end可能是您想要使用的。

答案 1 :(得分:0)

您需要使用WinRT的完整手势识别器功能才能获得最佳体验。 MSDN有一个完整的样本here。这将允许您抓取DIV的操作并适当地使用它。一个简单的步骤是here。注意需要:

  1. 创建MSGesture对象
  2. 捕获MSPointerDown,并将指针ID添加到1中创建的手势实例。
  3. 另一个考虑因素是查看您的体验并考虑是否使用mandatory snap points,并且滚动条中的多个项目可能适合您的体验。

    一些示例代码:

    <div id="touchMe" style="width:500px; height: 500px; background-color: yellow; "></div>
    

    JavaScript,在touchMe可用时运行:

    var v = document.getElementById("touchMe");
    v.addEventListener("MSGestureStart", function () {
        console.log("foo");
    });
    
    var gestureThing = new MSGesture();
    gestureThing.target = v;
    v.dooHicker = gestureThing;
    
    v.addEventListener("MSPointerDown", function (e) {
        gestureThing.addPointer(e.pointerId);
        console.log("down");
    });
    
    v.addEventListener("click", function () {
        console.log("click");
    });