【发布时间】:2011-07-01 01:35:35
【问题描述】:
参考this fiddle。该动画在 Chrome 和 IE (v9) 上非常流畅,但在 Firefox 上却非常不稳定。整个想法是在不移动 div 本身的情况下为边框设置动画(参考this 问题)。问题是,在 Firefox 中以更流畅的方式(如 Chrome/IE 中的方式)实现相同动画的任何可能方法?
即使您只为div 的一侧设置动画也是如此,所以这并不是因为我们试图同时为每一侧设置动画。如果我们在 Firefox 中查看this fiddle,似乎动画的边距不太平滑,这似乎是问题所在。
感谢任何锻炼。
【问题讨论】:
-
我认为您不需要
isIn变量。 MouseEnter 和 Mouse Leave 只发生一次。只需将.stop()放在.animate(之前,但这并不能解决您的问题,抱歉。 -
Firefox 的哪个版本?在 Firefox 5 上对我来说它看起来相当流畅
-
我不熟悉 jQuery,但我想每种样式都将通过 CSSStyleDeclaration 以如下方式添加:
var style = elem.style; style.marginTop = '10px'; style.marginLeft='10px'; ...。它看起来不稳定的原因是 DOM 中的每次更改都会激活(部分)重排(重印)。这意味着style.marginTop = '10px';之后将是第一个 回流,style.marginLeft='10px';之后是下一个,依此类推。您必须一次将所有样式放在元素上,例如elem.setAttribute('style', 'margin-top: 10px; margin-left: 10px;...');。但这不适用于旧版 IE。 -
@蒋毅,Firefox 5(当前版本)。如果你看一下小提琴,它似乎几乎振动了一点。更明显的是this link
标签: javascript jquery