3

我正在尝试使用 Jquery 在更改课程期间制作流畅的动画。

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

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

http://jsbin.com/upufut

4

2 回答 2

3

这只是库的版本问题。

您的 jsbin 显示 jQuery 1.3.2 和 jQuery UI 1.7.2。

在这个jsfiddle(使用 jq 1.3.2 和 jqui 1.7.2)中,它不起作用

在这两个库的另一个最新版本中,它可以工作

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


动画渐变

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

jQuery UI 效果核心扩展了 animate 函数,使其也能够为颜色设置动画。它被类转换功能大量使用,它能够为以下属性设置颜色动画:

  • 背景颜色
  • 边框底部颜色
  • 边框左颜色
  • 右边框颜色
  • 边框顶部颜色
  • 颜色
  • 轮廓颜色

具有以下组合之一:

  • 十六进制 (#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. 悬停按钮,所有属性都是动画的,但不是渐变。

我的观点是边框(等)的动画给人的印象是渐变是动画的,但事实并非如此。

于 2011-12-07T15:06:35.437 回答
0

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

于 2011-12-07T14:52:10.320 回答