我本来希望像…
$("selector")
.css({borderRadius: 10});
.animate({borderRadius: 30}, 900);
…会工作。但是,我错了:Webkit允许您通过 设置 所有四个角的值borderRadius
,但不允许您重新读取它- 因此,使用上面的代码,动画将始终从0开始而不是从10开始。IE具有相同的功能问题。Firefox 将 让您将其读回,因此一切正常。
好吧… border-radius在实现上有所不同。
幸运的是,有一种解决方法:只需单独指定每个角半径:
$("selector")
.css({
borderTopLefTradius: 10,
borderTopRighTradius: 10,
borderBottomLefTradius: 10,
borderBottomRighTradius: 10 })
.animate({
borderTopLefTradius: 30,
borderTopRighTradius: 30,
borderBottomLefTradius: 30,
borderBottomRighTradius: 30}, 900);
请注意,如果您希望保持与旧版浏览器的兼容性,则可以全力以赴,并使用旧版浏览器前缀的名称:
$("selector")
.css({
borderTopLefTradius: 10,
borderTopRighTradius: 10,
borderBottomLefTradius: 10,
borderBottomRighTradius: 10,
WebkitBorderTopLefTradius: 10,
WebkitBorderTopRighTradius: 10,
WebkitBorderBottomLefTradius: 10,
WebkitBorderBottomRighTradius: 10,
MozBorderRadius: 10
})
.animate({
borderTopLefTradius: 30,
borderTopRighTradius: 30,
borderBottomLefTradius: 30,
borderBottomRighTradius: 30,
WebkitBorderTopLefTradius: 30,
WebkitBorderTopRighTradius: 30,
WebkitBorderBottomLefTradius: 30,
WebkitBorderBottomRighTradius: 30,
MozBorderRadius: 30
}, 900);
但是,这开始变得非常疯狂。如果可能,我会避免这样做。