javascript - CSS3 过渡立即发生?

标签 javascript jquery css css-transitions

我有一个名为 #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/

相关文章:

javascript - 为什么我尝试设置带有值的 JSON 字段时会出现此错误?未捕获的类型错误 : Cannot set property 'today_avg_price' of undefined

javascript - 秒表计时器无法正常工作

javascript - SumoSelect 重新加载后无法打开

javascript - 如何获得一个复选框的div的结果?

javascript - 我可以使用什么将 YouTube 视频的链接存储到我的页面中?

javascript - CSS 动画不是 60FPS

javascript - XMLHttpRequest() json并行多线程

html - 对齐 3 个 div。其中 2 个宽度为固定宽度,第三个为自动

html - 图像离开屏幕然后重新打开的动画

javascript - jquery slideup 和 bootstrap 的警报(只显示一次)