【发布时间】:2012-02-19 04:22:52
【问题描述】:
$(document).ready(function() {
$('.button').hover(function() {
$(this).toggleClass('button-hover',200);
},function() {
$(this).toggleClass('button-hover',200);
});
});
$(document).ready(function() {
$('.button-rounded').hover(function() {
$(this).toggleClass('button-rounded-hover',200);
},function() {
$(this).toggleClass('button-rounded-hover',200);
});
});
<div class="button">Add class `button-hover` to this `div` on mouse over.</div>
<div class="button button-rounded">Add class `button-hover` and
class `button-rounded-hover` to this `div` on mouse over.</div>
在第二个div 上,整个动画需要 400 毫秒:button-hover 切换需要 200 毫秒,button-rounded-hover 切换需要另外 200 毫秒。 如何同时执行这些切换?
注意事项:
- 我正在使用 OOCSS,所以
button-rounded扩展了button,而button-rounded-hover扩展了button-hover。我不想定义button-rounded-hover几乎与button-hover完全一样,因为那不会很干燥(不要重复自己)所以这就是为什么我在第二个div上使用两个类和两个悬停调用. - 这两个动作都需要 200 毫秒。我不想将它们中的任何一个设为 0(瞬时)。
【问题讨论】:
-
同时?你的意思是你想让两个动画响应同一个事件吗?就目前而言,您的代码为两个独立的非嵌套(因此非冒泡)事件建立了两个处理程序。
-
@Beetroot-Beetroot:是的,当用户将鼠标悬停在元素上时,我希望同时添加两个类。
-
因此,将鼠标悬停在任一元素上会同时为两个元素设置动画?
-
@Beetroot-Beetroot 第二个 div 有两个类,所以第一个处理程序适用于两者。据我了解,OP 希望让第一个行为像现在一样,但第二个同时执行两个转换(按钮悬停和按钮圆形悬停)。现在,将鼠标悬停在 2nd 上会同时激活两个处理程序。
-
@mgibsonbr 是的,我有点慢。如果我现在理解正确,我下面的答案应该有效。
标签: jquery hover toggleclass oocss