如何识别是否是在listview的iteminvoked事件中点击或单击

时间:2012-08-12 01:52:33

标签: html5 css3 windows-8

我正在使用html5和javascript语言开发一个metro风格的应用程序。请找到我的问题如下:

我有一个列表视图的iteminvoked事件,我正在尝试运行css3转换。用户点击鼠标时我不想运行动画,因为我已经有鼠标悬停场景的css3声明性动画(:hover)。我的问题是我如何确定它是点击还是鼠标点击。

     itemInvoked: function (args) {
        if (appView.value === appViewState.snapped) {
            // If the page is snapped, the user invoked a group.
            var group = Data.groups.getAt(args.detail.itemIndex);
            nav.navigate("/pages/groupDetail/groupDetail.html", { groupKey: group.key });
        } else {

            var winitem = args.srcElement.querySelector(".win-item");
            var actionicon = winitem.querySelector(".item-image");
            var actiontitle = winitem.querySelector(".item-title");
            var showTransition = WinJS.UI.executeTransition(
              args.srcElement,
              [{
                  property: "border-color",
                  delay: 0,
                  duration: 500,
                  timing: "linear",
                  to: "#333"
              },
              {
                  property: "z-index",
                  delay: 0,
                  duration: 500,
                  timing: "linear",
                  to: "999"
              },
              {
                  property: "transform",
                  delay: 0,
                  duration: 500,
                  timing: "linear",
                  to: "scale(1.1)"
              }
              ]
          );

1 个答案:

答案 0 :(得分:0)

作为一般规则,on不应区分鼠标和触摸,除非它明显不同。

还应该注意的是:元素上的悬停状态仍然存在触摸,但它只是暂停 - 当你用手指按住元素时,你会看到悬停效果。

您应该查看自定义列表视图无法调用的默认动画;虽然也许这是不可能的。 (我说的是项目上似乎发生的默认比例)

Howerver,MSPointerEvent有一个pointerType属性,可让您区分笔,鼠标和触控。