我正在创建一个使用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()
来检查颜色......但如果我发现它们错了,我不确定我会做什么。
答案 0 :(得分:1)
继续我上面关于时间的评论(对不起,这不是一个实际的答案,但是在评论栏中没有足够的空间)......我认为问题是由于以下两个的时间安排事件:
updatePage
功能,您可以在其中抓取背景颜色以淡入问题(如果我正确地阅读你的代码)是你抓住颜色从淡入淡出到由你动态加载的样式表设置的div。如果它还没有完成加载(不只是下载,而是将样式应用到DOM),那么你抓取的背景颜色将是旧的。
所以从这里采取步骤......首先尝试将CSS加载程序的超时更改为非常小的&看看是否会使bug更频繁地出现(或者让它更大并且看看它是否消失)。如果这似乎匹配,那么一个可能的解决方案是在循环中使用超时,该循环测试背景颜色与已知的旧颜色,直到您看到它变化&然后继续你的背景动画等。
希望有帮助...
答案 1 :(得分:0)
我对网站的技术部分有疑问, 正如我所看到的那样(我错了吗?),当你点击一个菜单时,你会通过ajax获得css。图像也。我认为如果你在页面加载时从服务器获取所有内容,然后在标签上切换css类,那将是一个更好的主意。这也可能解决你的随机问题。 例如:对于背景动画,你只需要用动画切换两个类。