我在这里寻找webkitTransition对象引用
function spawnAnimation(what){
//sets the moving element
var moveingEl = document.getElementById(what);
//gives temp transition property
moveingEl.style.WebkitTransition = "left 2s";
// moveingEl.style.webkitTransition = "top 500ms";
var cLeft = moveingEl.style.left
var cleft = Number(cLeft.slice(0, -2));
var cTop = moveingEl.style.top
var cTop = Number(cTop.slice(0, -2));
moveingEl.style.left = cLeft+200 + "px";
}
这不起作用。我想给元素一个过渡属性,然后让它向右移动。调用此代码时,它会立即向右移动而不显示动画。糟糕:(。我不想在CSS中预定义它,我想动态添加它然后将其删除。
答案 0 :(得分:6)
使用style.setProperty。
moveingEl.style.setProperty("-webkit-transition", "left 5s linear");
moveingEl.style.setProperty("left", "200px");
答案 1 :(得分:2)
允许渲染的1ms让线程返回。
setTimeout(function() {
myElement.style.height = '200px'; /* or whatever css changes you want to do */
}, 1);
答案 2 :(得分:1)
您可以使用:
element.style.webkitTransition = "set your transition up here"
答案 3 :(得分:0)
我知道这是一种解决方法,但您可以使用jQuery吗?
$(moveingEl).css('-webkit-transform', 'translateX(200px)');
答案 4 :(得分:0)
<script>
$(document).ready(function(){
var x = 100;
var y = 0;
setInterval(function(){
x += 1;
y += 1;
var element = document.getElementById('cube');
element.style.webkitTransform = "translateZ(-100px) rotateY("+x+"deg) rotateX("+y+"deg)"; //for safari and chrome
element.style.MozTransform = "translateZ(-100px) rotateY("+x+"deg) rotateX("+y+"deg)"; //for firefox
},50);
//for other browsers use: "msTransform", "OTransform", "transform"
});
</script>