我有一个名为 #artwork
的元素,需要进行动画处理:
#artwork{
-webkit-transition: all 20s ease-in;
transition:all 20s ease-in;
width:75%;
display:block;
margin:0px auto;
}
#artwork.trans{
width:60%;
}
问题是,转换立即发生,没有任何延迟(在我的例子中是 20 秒)。我尝试了 Jquery 的 toggleClass
函数,但没有成功,我还尝试了 css
函数,但也不起作用。
$(window).load(function(){
var addImage = function(background){
$("#images").append("<div class='image'><img id='artwork' src='"+ background +"' /></div>");
$("#artwork").css("width", "65%");
$("#artwork").toggleClass("trans");
};
addImage("http://4.bp.blogspot.com/-f5Oju8nYOe4/T91Kdqww3GI/AAAAAAAAGEk/s1tZR76WQfc/s1600/winter-wallpaper-7.jpg");
});
最佳答案
元素需要在页面上绘制后才能进行转换。如果您添加一个元素,最好在更改其样式之前给予 10-100 毫秒的初始状态渲染时间。
您可能还想考虑使用动画,这样就不会造成延迟。
这是我用来将某些内容从右侧移动到页面中的动画,请随意修改它以满足您的需要。
.some_class{
-webkit-animation: myanimation 500ms ease-in-out;
-moz-animation: myanimation 500ms ease-in-out;
animation: myanimation 500ms ease-in-out;
}
@-webkit-keyframes myanimation {
0% { left: 200%; }
100% { left: 0%; }
}
@keyframes myanimation {
0% { left: 200%; }
100% { left: 0%;}
}
关于javascript - CSS3 过渡立即发生?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28442301/