是否可以通过jquery动画CSS属性翻译?
$('.myButtons').animate({"transform":"translate(50px,100px)"})
它在许多浏览器中都有效吗?
演示不起作用:http://jsfiddle.net/ignaciocorreia/xWCVf/
更新
我的解决方案:
答案 0 :(得分:7)
有jQuery插件可以帮助您实现这一目标:http://ricostacruz.com/jquery.transit/
答案 1 :(得分:7)
$('div').css({"-webkit-transform":"translate(100px,100px)"});
答案 2 :(得分:5)
有一种有趣的方法可以通过以独特的方式使用jQuery animate
方法来实现,您可以在javascript对象上调用animate
方法来描述from
值和然后你作为第一个参数传递另一个描述to
值的js对象,以及一个step
函数,它根据前面描述的值处理动画的每个步骤。
translateY
:
var $elm = $('h1'); // element to be moved
function run( v ){
// clone the array (before "animate()" modifies it), and reverse it
var reversed = JSON.parse(JSON.stringify(v)).reverse();
$(v[0]).animate(v[1], {
duration: 500,
step: function(val) {
$elm.css("transform", `translateY(${val}px)`);
},
done: function(){
run( reversed )
}
})
};
// "y" is arbitrary used as the key name
run( [{y:0}, {y:80}] )
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1>jQuery animate <pre>transform:translateY()</pre></h1>
答案 3 :(得分:4)
根据CanIUse,您应该拥有多个前缀。
$('div').css({
"-webkit-transform":"translate(100px,100px)",
"-ms-transform":"translate(100px,100px)",
"transform":"translate(100px,100px)"
});
答案 4 :(得分:0)
您需要在CSS中设置关键帧动画。并使用jQuery的关键帧:
$('#myTest').css({"animation":"my-animation 2s infinite"});
&#13;
#myTest {
width: 50px;
height: 50px;
background: black;
}
@keyframes my-animation {
0% {
background: red;
}
50% {
background: blue;
}
100% {
background: green;
}
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="myTest"></div>
&#13;
答案 5 :(得分:0)
我也在寻找一种很好的方法来做到这一点,我发现最好的方法是在&#34;转换&#34;属性,然后更改转换,然后删除转换。
我把它放在一个jQuery插件中
https://gist.github.com/dustinpoissant/8a4837c476e3939a5b3d1a2585e8d1b0
您可以使用以下代码:
$("#myElement").animateTransform("rotate(180deg)", 750, function(){
console.log("animation completed after 750ms");
});