【发布时间】:2011-10-27 12:06:00
【问题描述】:
我正在创建一个 DOM 元素(一个 div),将其添加到 DOM,然后在 javascript 中一键更改其宽度。这在理论上应该触发 CSS3 过渡,但结果是直接从 A 到 B,中间没有过渡。
如果我通过单独的测试点击事件改变宽度,一切都会按预期工作。
这是我的 JS 和 CSS:
JS(jQuery):
var div = $('<div />').addClass('trans').css('width', '20px');
$('#container').append(div);
div.css('width', '200px');
CSS(暂时只是 Mozilla):
.trans {
-moz-transition-property: all;
-moz-transition-duration: 5s;
height: 20px;
background-color: cyan;
}
我是在这里搞砸了,还是“一击即中”不是事情应该做的方式?
非常感谢所有帮助。
【问题讨论】:
-
我很困惑 - 你想为高度或宽度设置动画吗?或两者?另外,使用 jquery 的 .animate() 方法是不可能的吗?因为如果不是,这就是我建议的方式。告诉我,我会写一个简单的方法来用 jQuery(或修复 CSS)。
-
@onetrickpony - 目前还不清楚您正在寻找此赏金的哪些额外信息。能否请您在评论中详细说明?
-
我只是想知道是否有比使用超时让浏览器更新这些值更好的方法@Josh
-
@onetrickpony - 除了被接受的答案?因为这可能是最好的方法。我想我感到困惑的是您不知道转换了哪个属性的场景。
-
当你在 CSS 文件中定义了过渡,并且不想告诉 js 时,应该只担心附加 html 和更改类
标签: jquery css transitions css-transitions