jQuery CSS页面转换

时间:2014-11-03 22:32:20

标签: jquery css transition pageload

我一直在使用jQuery和CSS转换测试页面转换。我想要实现的是页面之间的加载是“无缝的”,即页面不会闪烁。 (我正在努力实现的目标:https://www.dropbox.com/guidehttp://www.rezo-zero.com/en/

网络上最常见的一个例子是关于Codrops的以下文章:http://tympanus.net/Development/PageTransitions/。虽然这是一个很好的效果,但此处显示的示例仅循环显示同一页面上的元素,而不是重定向到另一个页面

除了Codrops之外,我还看了一下smoothState.js(http://css-tricks.com/add-page-transitions-css-smoothstate-js/)插件,虽然演示看起来很棒,但我无法通过我所做的测试获得相同的结果。退出动画没有被触发加上页面似乎需要花费很长时间来加载。也许我做错了什么但是插件目前似乎不够稳定。

经过一番研究后,我在stackoverflow上发现了这个问题:Seamless Page Changing with AJAX并设法创建了我想要的效果。这方面的例子可以在这里看到:https://dl.dropboxusercontent.com/u/18543481/historyjs-page-transition/test.html

我在这里进行的简单测试是,一旦全屏加载可见,内容就会向上滑动,加载到另一页,内容会向下滑动。 (请注意,现在这是一个简单的测试而不是一切都到位,即后退按钮,但我知道问题很容易解决)。

我想问的是我使用的方法是否正确或是否有更好的解决方法?

最后,我想补充一点,我也读到过使用Angular.JS也可以实现这样的事情,不确定它是否可行,因为我之前从未使用过Angular.JS。

1 个答案:

答案 0 :(得分:1)

AngularJS当然使这个任务变得简单 - 因为默认情况下AJAX页面加载被绑定到框架中,您只需要将CSS动画样式附加到Angular提供的相应钩子上。这是yearofmoo.com的角度动画的一个很好的参考。

然而,没有必要使用Angular - 事实上,如果您想要的只是页面转换,我建议它有点重。你的方法听起来对我来说是正确的:

  • 获取新内容
  • 成功获取后,在屏幕外添加内容,或任何适用于您的效果的内容
  • 将一个类应用于正文以指示要进行的动画
  • 等待附加到班级的动画使用超时完成
  • 删除旧的屏幕外内容和正文中的动画类

那里有可以帮助你的图书馆,但听起来你自己做得还不错!