说我有课:
.box { background:red; }
.box .mini-box { background:green; }
.box.active { background:purple; }
.box.active .mini-box { background:yellow; }
如果我使用 css-transitions 我会简单地添加transition:all 0.5s ease;
,当添加类时,active
两个元素都会适当地动画。
如果我应用带有动画时间的 jQuery toggleClass(没有启用任何 css-transitions),它只会为目标元素设置动画。(即.box)。
$('.box').toggleClass('active', 500);
当我将它应用于父方法时,jquery ui 的 toggleClass 方法不会发生这种情况。有没有办法让它表现得像 CSS 转换一样?
您可以在这里看到问题:http: //jsfiddle.net/yg8rz/1/ 第二个(迷你)框没有过渡颜色。
您可以在此处看到所需的结果:http: //jsfiddle.net/yg8rz/4/ 您必须使用 webkit 浏览器才能使其工作(在本例中)。
注意:为了更好的 css 实践(倾向于没有 javascript 转换的未来),元素从祖先继承活动类而不是直接将活动类应用于任何子元素是很重要的。
此解决方案使用 javascript 也很重要,因此它适用于 ie8+