3

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

我在下面尝试运行 css3 转换的列表视图的 iteminvoked 事件。我不想在用户单击鼠标时运行动画,因为我已经有了用于鼠标悬停场景的 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)"
              }
              ]
          );
4

1 回答 1

0

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

还应该注意的是,元素上的 :hover 状态仍然存在用于触摸,但它只是处于保持状态 - 当您将手指放在元素上时,您会看到悬停效果。

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

但是,MSPointerEvent有一个 pointerType 属性,可以让您区分笔、鼠标和触摸。

于 2012-08-13T10:50:54.660 回答