我正在研究Web应用程序的前端。所有内容都是从我从后端收到的JSON对象生成的。然后我将这些内容封装在HTML中并将其添加到DOM中。我使用jQuery append()来做到这一点。一旦添加了内容,我就会将旧页面和新页面设置为动画。将动画添加到DOM中的新内容
我的问题是内容在动画开始之前似乎没有完成加载。似乎并不是所有的CSS在动画开始之前都会生效。它只在动画完成时显示。
我认为我需要检查内容是否完成添加之前,我开始动画。我知道append()应该是同步的,但是不能伤害到检查。
下面是一段代码片段,让您了解涉及的动画。 (注意:这不是我的全部代码,只是最低限度让你知道我在做什么)
- 'mainTransitionContainer'是新内容添加到的元素。
- 'transitionWidth'是使用旧页面和新页面的宽度确定的变量。
- 这两个页面都位于mainTransitionContainer内部,彼此相邻。
$(mainTransitionContainer).append(newElement); $(mainTransitionContainer).ready(function() { $(mainTransitionContainer).animate({ right: transitionWidth }, 2000,'easeInOutQuart'}); });
这是正确的方法来检查内容加载完成?
有没有人有另一种想法,为什么我的内容无法正确显示?
jQuery动画可能会影响我的CSS样式吗?
有没有人有任何建议?非常感谢。
你如何加载的内容? 'ready'事件只对'document'有效,因为它将一个处理程序绑定到DOMReady事件,当您通过异步请求加载内容时不会触发该事件。 – 2012-08-17 08:43:00
谢谢Didier。这已经澄清了一些事情。我编辑了原始代码给你一个更好的主意。 'newElement'变量基本上是一个包含一些复杂HTML代码的字符串。然后使用append()将其添加到'mainTransitionContainer'。 – phunder 2012-08-17 08:50:29
* * newElement的内容是如何产生的?通过ajax加载或简单地在JavaScript中建立? – 2012-08-17 08:53:29