jQuery的背景动画问题

时间:2009-08-03 06:06:59

标签: jquery css cross-browser

我正在创建一个使用AJAX切换内容的页面,这5个页面中的每一个都有自己的背景颜色。

更改页面,使当前背景为新背景设置动画。我有24位PNG,alpha透明度覆盖背景颜色变化(它可以正常工作)。

然而,有一个小问题。有时,至少在Firefox 3.5.1和Safari 3/4中,背景会改变,但我的#main-container div不会。容器有background: transparent以确定。

问题是,这不是每次都会发生,有时候也不会发生。这可能只是我浏览器的一个怪癖吗?

我正在使用jQuery插件来设置背景颜色的动画。

我在想,有没有人知道我如何强制#main-container继承它的父容器(body)背景?

我知道我可以使用setInterval() ping它,但这将是一个难看的解决方案。

非常感谢任何建议。

该网站可以查看@ http://www.acura.com.au/~kohana/

右边有一个菜单,单击这些部分就是问题所在。您可能必须至少导航8次才能看到怪癖。

非常感谢任何帮助!

更新

我将尝试setInterval()来检查颜色......但如果我发现它们错了,我不确定我会做什么。

2 个答案:

答案 0 :(得分:1)

继续我上面关于时间的评论(对不起,这不是一个实际的答案,但是在评论栏中没有足够的空间)......我认为问题是由于以下两个的时间安排事件:

  1. 新样式表的动态(异步)加载
  2. updatePage功能,您可以在其中抓取背景颜色以淡入
  3. 问题(如果我正确地阅读你的代码)是你抓住颜色从淡入淡出到由你动态加载的样式表设置的div。如果它还没有完成加载(不只是下载,而是将样式应用到DOM),那么你抓取的背景颜色将是旧的。

    所以从这里采取步骤......首先尝试将CS​​S加载程序的超时更改为非常小的&看看是否会使bug更频繁地出现(或者让它更大并且看看它是否消失)。如果这似乎匹配,那么一个可能的解决方案是在循环中使用超时,该循环测试背景颜色与已知的旧颜色,直到您看到它变化&然后继续你的背景动画等。

    希望有帮助...

答案 1 :(得分:0)

我对网站的技术部分有疑问, 正如我所看到的那样(我错了吗?),当你点击一个菜单时,你会通过ajax获得css。图像也。我认为如果你在页面加载时从服务器获取所有内容,然后在标签上切换css类,那将是一个更好的主意。这也可能解决你的随机问题。 例如:对于背景动画,你只需要用动画切换两个类。