我想创建一个使用CSS3转换的效果。 div应该在mouseover上改变它的宽度和背景颜色。然后在鼠标悬停时,它应该等待2秒钟,然后返回到正常的宽度和背景颜色。我所做的是在鼠标悬停上通过jQuery添加类hoverclass
,并在鼠标移除时将其删除。检查出Fiddle。如何结合多个转换与jQuery?
我对此有两个问题。首先,浏览器会以不同的方式演绎小提琴。在Chrome中,一切正常,在mouseover上div会立即改变宽度,然后等待鼠标移动2秒后恢复正常大小。然而,在Firefox中,新添加的hoverclass将被直接用作新的转换规则。所以会发生的是,在鼠标悬停时,动画将在2秒后开始。然后在mouseout上,这个类将被删除,并且Firefox会采用#test
的转换规则,因此div将直接恢复到正常大小,而不会延迟。
我注意到的第二件事是,当我尝试使用两个属性(背景颜色和宽度)时仅为宽度使用新的过渡规则(如在hoverclass中)时,它会覆盖背景颜色。这是否意味着我必须将所有我在#test
中使用的过渡属性写在悬浮类中?
好吧,你是对的。在这个例子中,它不会工作。但是,例如,如果我想更改鼠标悬停的宽度,然后等待2秒,然后将宽度更改为300px,然后再等待2秒,然后将其更改为200像素,则需要添加一个类。在那种情况下我会怎么做? – phpheini 2013-04-25 21:53:41
请参阅http://jsfiddle.net/MMKnx/2/ unhovering使用CSS,然后在停止4秒后导致最终过渡的JavaScript超时。 – 2013-04-25 22:05:06