3

私は、html5 および javascript 言語を使用してメトロ スタイル アプリに取り組んでいます。以下のように私の質問を見つけてください:

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 に答える