【发布时间】:2016-03-24 17:15:38
【问题描述】:
我正在从 jQuery 2.0.3 切换到 2.1.0。
我注意到在 v2.1.0 中直接设置 css 属性时会忽略 css transition 属性
$('#someElement').css('width','100px');
在 v2.0.3 中,我的元素将保持它的 css 过渡,而在 v2.1.0 中我失去了它。
我想知道为什么会有不同的处理方式,以及如何“打开”过渡效果。
在 jQuery 2.0.3 中,css transition 属性生效
$(function() {
$('.myClass').css('width', '100px');
});
.myClass {
height: 50px;
width: 300px;
background-color: red;
transition: width 3s;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
<div class="myClass"></div>
在 jQuery 2.1.0 中,css transition 属性被忽略
$(function() {
$('.myClass').css('width', '100px');
});
.myClass {
height: 50px;
width: 300px;
background-color: red;
transition: width 3s;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="myClass"></div>
编辑:
我在 Chrome 版本 47.0.2526.106 m 中看到了这种奇怪的行为
在 Firefox 42.0 中,两者都可以正常动画
【问题讨论】:
-
我看不出有什么不同!可能是您的浏览器有问题。
-
@OkiErieRinaldi 你用的是什么浏览器?我可以在最新版本的 Chrome 中重现 OP 的问题。
-
奇怪,我在小提琴上尝试你的代码,一切都适用于 chrome 或 firefox。但我不确定为什么它不适用于 SO 代码 sn-p 上的 chrome。 jsfiddle.net/z0qLahuu
-
@choz 似乎 ondomready 与 onload 导致了差异。 2.1.0 仅适用于 onload,而 2.0.3 则适用于两者
-
@EricPhillips 这可能与stackoverflow.com/questions/32161553/… 和code.google.com/p/chromium/issues/detail?id=451756 的问题相似
标签: javascript jquery css css-transitions jquery-2.0