Jquery addClass / removeClass动画不适用于Background?

时间:2011-12-07 14:40:10

标签: jquery animation addclass removeclass

我正在尝试使用Jquery在更改类中进行平滑动画。

但它只适用于文字颜色,而不适用于背景。

您可以查看详细信息:(:

http://jsbin.com/upufut

2 个答案:

答案 0 :(得分:3)

这只是图书馆版本的问题。

你的jsbin展示了jQuery 1.3.2和jQuery UI 1.7.2。

在这个jsfiddle(jq 1.3.2和jqui 1.7.2)中,工作。

在这个other one这两个库的最新版本中,可以使用

jQuery 1.3.2是更多的遗产,你不应该再使用它,除非你没有选择,但是你应该期待一些(过度的)不能工作的东西我害怕


动画渐变

查看jQuery UI中的文档,他们似乎不支持重载的.animate()上的渐变到动画颜色(doc)。我猜它只适用于纯色。

  

jQuery UI效果核心扩展了animate功能   动画颜色也是如此。它被阶级过渡所大量使用   功能,它可以为以下属性设置颜色动画:

     
      
  • 的backgroundColor
  •   
  • borderBottomColor
  •   
  • borderLeftColor
  •   
  • borderRightColor
  •   
  • borderTopColor
  •   
  • 颜色
  •   
  • outlineColor
  •   
     

使用以下组合之一:

     
      
  • hex(#FF0000)
  •   
  • rgb(rgb(255,255,255))
  •   
  • 姓名(“黑色”)
  •   
另一方面,CSS转换不会在任何浏览器中处理渐变。有几种解决方法:


您提及的YouTube按钮上的一句话。

对我来说,渐变不是动画,因为它们使用CSS过渡。以下是我测试的方法:

  1. 转到youtube上的视频页面。
  2. 按钮上的“检查元素”(在chrome中)以打开控制台。选择<button>元素。
  3. 查看CSS类 .yt-uix-button ,将[-*-]transition: all 0.218s;更改为“1s”
  4. 例如,将渐变的一种颜色更改为绿色。
  5. 将鼠标悬停在按钮上,所有属性都会设置动画,但不会显示渐变。
  6. 我的观点是边框(等)的动画给人的印象是渐变是动画的,但事实并非如此。

答案 1 :(得分:0)

我不明白为什么你使用javascript:$(this).removeClass("hoverf",1000),removeClass的第二个参数是什么?而且我没有发现任何问题,它在chrome中运行良好。