我正在尝试使用滑块在Firefox中“转换:缩放(x,x)”css3“动画”。如果我关闭动画,滑块和缩放工作。如果我打开动画,它会动画,但缩放不起作用。
这是我的jsfiddle ...如果你取消注释CSS的结尾,你可以看到问题。我希望箭头旋转并缩放。
(仅限FIREFOX,下面的chrome / safari链接):http://jsfiddle.net/G6rYu/
$("#slider-step").on("change", function(e){
scale= $("#slider-step").val() / 100;
$(".elem.A").css("transform", "scale("+scale+","+scale+")");
$(".elem.B").css("transform", "scale("+(1-scale)+","+(1-scale)+")");
});
和...
.elem.A {
background-image:url('http://s24.postimg.org/ua9mzwmht/arrow.png');
animation-name: rotate;
animation-duration: 3.0s;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
@keyframes rotate {
from {transform: rotate(0deg);}
to {transform: rotate(-360deg);}
}
以下是我想要的效果(仅适用于Chrome / Safari):http://jsfiddle.net/nick2ny/4mLkU/
答案 0 :(得分:4)
它仅适用于WebKit浏览器,因为您要告诉CSS目标,例如:
-webkit-animation-name: rotate;
-webkit-animation-duration: 3.0s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
Firefox不是使用WebKit引擎构建的,因此您需要使用-moz
前缀来定位它:
/* Target Firefox: */
-moz-animation-name: rotate;
-moz-animation-duration: 3.0s;
-moz-animation-iteration-count: infinite;
-moz-animation-timing-function: linear;
/* Target Webkit: */
-webkit-animation-name: rotate;
-webkit-animation-duration: 3.0s;
-webkit-animation-iteration-count: infinite;
-webkit-animation-timing-function: linear;
/* Target W3C Browsers: */
animation-name: rotate;
animation-duration: 3.0s;
animation-iteration-count: infinite;
animation-timing-function: linear;
答案 1 :(得分:1)
我认为在.elem
元素上使用转换两次存在冲突。动画transform: rotate()
将覆盖transform: scale()
。您可以使用包装器元素进行缩放,并将动画应用于内部元素。
您似乎在Chrome中使用zoom
,这可以解释它在该浏览器中的工作原理。
请看这个小提琴: http://jsfiddle.net/G6rYu/5/ (适用于Firefox和Chrome)
<div class="wrap">
<div class="box A">
<div class="elem A"></div>
</div>
</div>
<div class="wrap">
<div class="box B">
<div class="elem B"></div>
</div>
</div>
CSS
.wrap {
width: 175px;
height: 175px;
overflow: hidden;
}
.box.A {
width:175px;
/* border:1px blue solid; */
}
.box.B {
position:relative;
top:0px;
left:0px;
float:left;
height: 175px;
width:175px;
/* border:1px blue solid; */
}
.elem {
width:175px;
height:175px;
/* border:1px red solid; */
background-repeat: no-repeat;
}
.elem.A {
background-image:url('http://s24.postimg.org/ua9mzwmht/arrow.png');
}
.box.A {
animation-name: rotate;
animation-duration: 3.0s;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
@keyframes rotate {
from {
transform: rotate(0deg);
}
to {
transform: rotate(-360deg);
}
}
.elem.B {
background-image:url('http://s29.postimg.org/np8utnv8j/arrow2.png');
}
.box.B {
animation-name: rotate2;
animation-duration: 3.0s;
animation-iteration-count: infinite;
animation-timing-function: linear;
}
@keyframes rotate2 {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}