您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

jQuery动画CSS边框半径属性(Webkit,Mozilla)

jQuery动画CSS边框半径属性(Webkit,Mozilla)

我本来希望像…

$("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);

但是,这开始变得非常疯狂。如果可能,我会避免这样做。

CSS 2022/1/1 18:15:05 有560人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶