2

我正在尝试使用 jQuery 添加 CSS3 过渡来更改样式的 CSS 属性。(我想这样做,transform3d但属性是动态的......)

这可能是一件非常愚蠢的事情,但我不知道为什么,如果我alert在更新 CSS 属性之前做一个,CSS3 过渡效果很好。如果没有,它不会。

我在这里有一个带有示例的 jsfiddle,alert如果您想了解我的意思,只需评论一下:http: //jsfiddle.net/7WPT8/1/

用于更新 CSS 的代码是:

//topPosition is the dynamic value
$(this).css('top', topPosition+'px');

只有在我使用alert之前它才有效。

4

2 回答 2

2

您正在创建元素,showFlash()然后在使用该元素的地方直接调用该函数。序列中可能存在时间问题,alert()中断当前序列,因此它可以工作。

为了以简单的方式防止这种情况,请将您的直接添加div到您的内容中。

http://jsfiddle.net/7WPT8/4/

于 2013-03-28T12:36:36.197 回答
2

斯文是对的,这是一个时间问题。也可以通过使用最小超时来触发 css 属性的更改来避免这种情况(如果文档中的 flashmessage 从一开始就不是一个选项) - 检查http://jsfiddle.net/7WPT8/5/

(我在这里使用 var通过闭包将 jQuery 元素传递给匿名函数 - 否则,由于通过超时分开执行_this,它不会知道是什么。)$(this)

于 2013-03-28T12:42:03.580 回答