在页面之间构建带有动画的“单页”站点

时间:2013-03-11 00:04:20

标签: javascript jquery slide jquery-effects

我很想知道用于产生效果的内容,例如此网站模板:http://www.templatemonster.com/demo/43491.html

我希望有一个菜单和背景,而一旦我点击菜单链接,它就会触发新页面滑入视图而不会被重定向到新页面,导致浏览器重新加载新页面等等。还不错。

我不是在寻找代码(除了要使用的函数(如果使用JQuery))以及我应该寻找什么样的效果来实现这一目标?

请指出正确的方向:)

2 个答案:

答案 0 :(得分:0)

有很多方法可以达到你想要的效果,但这是我关于如何在概念上实现它的建议:

  1. 通过设置内容容器的position 动画来为内容设置动画,这样可以为您的网页带来流畅的感觉。 The jQuery documentation应该非常清楚。请记住,您要拦截锚点的正常行为,因此preventDefault()return false或两者都可以。

  2. 使用AJAX request 获取您的内容。您可以使用放在链接中的href属性来获取正确的内容。然后使用.on()方法将事件绑定到该<a>元素。你离开href的原因是要有一个优雅的后备:如果代码出现问题,如果用户禁用了javascript,或者只是在非javascript友好的浏览器上导航,他仍然可以访问您的内容。

  3. 这是实现您所需要的两个必要步骤。如果您想稍微调整一下您的网站,请尝试考虑这些事情:

    1. 谨慎使用加载.gif,让您的网站看起来更具响应性

    2. 不要重复提供内容:检查用户是否点击了当前显示页面的链接,而不是再次获取内容;除了对你的用户愚蠢之外,它会使无用的服务器负载(可能微不足道,但仍然)。但总是考虑你的用户!告诉他通过巧妙使用UI来禁用该链接。

    3. 使用history API处理浏览器历史记录。您的网站将更易于访问,更加用户友好,更适合搜索引擎优化,并且看起来也更先进。

答案 1 :(得分:-1)

现在可以有很多种方式......简单的方法(但它不是一种可维护的方式)

是您在一个页面中的所有网站内容,并将您认为页面中的每个部分包装在div中

<div class="home-page">content of home page goes here </div>
<div class="contact-us-page">content of contact us  page goes here </div>

etc...

并使用jquery隐藏除主页之外的所有内容

$(function(){
   $('.contact-us-page').hide();
   $('.other-page').hide();
})

当用户点击指向其他页面的链接时,让我们说联系我们页面,您将隐藏父级并转而点击联系我们页面

$('.contact-us-link').click(function(){
    $('.home-page').hide(1000);
    $('.contact-us-page').show(1000);
})

就是这样:))

这种下降是没有路由..

所以要解决这个问题,你必须使用像backbone.js这样的东西 需要一段时间才能很好地了解它......

这只是一个关于它是如何工作的快速想法..