我正在使用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)"
}
]
);
答案 0 :(得分:0)
作为一般规则,on不应区分鼠标和触摸,除非它明显不同。
还应该注意的是:元素上的悬停状态仍然存在触摸,但它只是暂停 - 当你用手指按住元素时,你会看到悬停效果。
您应该查看自定义列表视图无法调用的默认动画;虽然也许这是不可能的。 (我说的是项目上似乎发生的默认比例)
Howerver,MSPointerEvent有一个pointerType属性,可让您区分笔,鼠标和触控。