【发布时间】:2014-09-13 23:55:57
【问题描述】:
所以我有一个动画,如果单击输入,它就会启动,它有点像长按或右键单击时的 Windows 8 动画。
我的 JS:
$("body").on('click',function(e){
if($(e.target).closest(".img_list")){
var inp = $(e.target).closest(".img_list").find("input")[0];
if(inp.checked){
$(e.target).closest(".img_list").addClass("clicked tilting");
}else{
$(e.target).closest(".img_list").removeClass("clicked tilting");
}
}
});
以及切换类的 CSS:
@keyframes tilter{
0%{
-webkit-transform: perspective(320px) rotate3d(0, 1, 0, -8deg);
transform: perspective(320px) rotate3d(0, 1, 0, -8deg);
}
25%{
-webkit-transform: perspective(320px) rotate3d(0, 1, 0, 8deg);
transform: perspective(320px) rotate3d(0, 1, 0, 8deg);
}
50%{
-webkit-transform: perspective(320px) rotate3d(0, 1, 0, -8deg);
transform: perspective(320px) rotate3d(0, 1, 0, -8deg);
}
75%{
-webkit-transform: perspective(320px) rotate3d(0, 1, 0, 8deg);
transform: perspective(320px) rotate3d(0, 1, 0, 8deg);
}
100%{
-webkit-transform: perspective(320px) rotate3d(0, 1, 0, -8deg);
transform: perspective(320px) rotate3d(0, 1, 0, -8deg);
}
}
但这与我的点击事件有冲突,由于某种原因,当我点击时目标不存在。
这很难解释,所以我写了一个fiddle for you here,如果你像疯子一样点击,你最终会看到这种情况发生。它也有我的原始代码,比这更容易,更干净。
有人可以向我解释为什么这是冲突吗?
【问题讨论】:
-
你确定是你的js?在我看来,左上部分根本没有点击。那是由于 CSS 转换
-
你的权利!那么什么是一个干净的解决方案。这不是我的 JS,我知道它是 CSS3 动画 (transform/rotate3d),这对我来说真的是一个奇怪的错误。
-
这是 CSS 动画很常见的问题。一分钟,我会写一个答案
-
@EasyBB 您的 JS 代码完全没问题。问题出在 CSS 代码中。
-
@King 我知道哈哈。这就是为什么我写的 CSS3 动画与点击冲突
标签: javascript css css-transforms perspective