代码之家  ›  专栏  ›  技术社区  ›  alex

jquery的背景动画问题

  •  2
  • alex  · 技术社区  · 16 年前

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

    更改页面,使当前背景动画成为新的。我有24位PNG与阿尔法透明覆盖背景颜色变化(它工作正常)。

    然而,有一个小问题。有时候,至少在火狐3.5.1和Safari 3/4中,背景会改变,但是我的 #main-container div不会。集装箱有 background: transparent 当然可以。

    问题是,这不是每次都发生,只是有时。这可能只是我让浏览器做的一个奇怪的事情吗?

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

    我在想,有人知道我怎样才能强迫 主容器 继承它的父容器( body )背景?

    我知道我可以用 setInterval() 但这将是一个丑陋的解决方案。

    任何建议都非常感谢。

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

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

    非常感谢您的帮助!

    更新

    我要尝试 集间Valk() 检查颜色…但不知道如果我发现他们错了我会怎么做。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Alconja    16 年前

    从我上面关于时间的评论中继续(抱歉,这不是一个真正的答案,但是评论栏中没有足够的空间)。我认为问题在于以下两个事件的时间安排:

    1. 新样式表的动态(异步)加载
    2. 这个 updatePage 函数,用于获取要淡入的背景色

    问题是(如果我正确地阅读了代码),您将从一个由动态加载的样式表设计的DIV中获取渐变颜色。如果还没有完成加载(不仅仅是下载,而是将样式应用到DOM),那么您获取的背景色将是旧的。

    所以从这里开始要采取的步骤…首先,尝试将CSS加载器上的超时更改为非常小的值,看看这是否会使bug更频繁地出现(或者使其更大,看看它是否消失)。如果这看起来是匹配的,那么一个可能的解决方案是在循环中使用一个超时,用已知的旧颜色测试背景颜色,直到您看到它改变,然后继续进行背景动画等。

    希望有帮助…

        2
  •  0
  •   eduard    16 年前

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