Jquery 使用ajax和CSS3动画动态加载wordpress内容

Jquery 使用ajax和CSS3动画动态加载wordpress内容,jquery,ajax,html,wordpress,css,Jquery,Ajax,Html,Wordpress,Css,对,所以我决定给自己设定一个挑战,作为学习曲线的一种形式。我以前从未使用过ajax,但我觉得这是我必须学习的东西,所以有什么机会比在一个新的投资组合网站上使用它更好呢 网站的主要概念涉及到网站内容在960边缘的折叠后面滑动,因此您可以单击一个链接,当前内容全部滑入部分隐藏的折叠中,然后折叠将调整大小以匹配新内容块,新内容从折叠下滑入。到目前为止,我使用Wordpress循环和一些基本的jquery以一种简单的方式完成了这项工作。(在新内容Com进入之前,仍然无法让折页正确调整其高度) 我有这个(

对,所以我决定给自己设定一个挑战,作为学习曲线的一种形式。我以前从未使用过ajax,但我觉得这是我必须学习的东西,所以有什么机会比在一个新的投资组合网站上使用它更好呢

网站的主要概念涉及到网站内容在960边缘的折叠后面滑动,因此您可以单击一个链接,当前内容全部滑入部分隐藏的折叠中,然后折叠将调整大小以匹配新内容块,新内容从折叠下滑入。到目前为止,我使用Wordpress循环和一些基本的jquery以一种简单的方式完成了这项工作。(在新内容Com进入之前,仍然无法让折页正确调整其高度)

我有这个(http://www.deluxeblogtips.com/2010/05/how-to-ajaxify-wordpress-theme.html)作为开始的基础,但它似乎没有完全实现我的预期目标

不要再设置一些愚蠢的JSFIDLE了,下面是网站的现状

编辑:对不起,我分心了,解释时忘了问确切的问题:

我如何才能使其在您单击内部链接时导致以下事件链:

内容框滑出->内容更改->折叠增长->内容框滑入新内容

编辑2:我意识到我没有真正把自己讲清楚。我已经设法绕过ajax来加载内容,问题是不同页面的内容加载方式不同。例如:

主页上有3个最近的站点,从顶部的垂直折叠处向下滑动,一个从左侧滑入的新闻帖子,以及从右侧滑入的新闻帖子列表

工作/播放页面顶部有一个垂直折叠,块从该折叠处向下滑动

接触是一个简单的全宽,所以在任何一边折叠填充960。现在的about页面也是如此,不过将来可能会有一个侧边栏

如何使AJAX能够检测当前加载的内容,从而知道如何做出反应


提前感谢您的帮助

好吧,你已经为自己大致概述了你需要做什么,因此我将提供一个
未经测试的
概述,以了解如何让类似的工作正常进行

 function animateInDone () {
      // do something here
 }

 function foldReady () {
      // fold has been scaled for this content let's show it on screen
      $('#contentBox').animate(
           {'left':'100px'},
           400,
           'swing',
           complete: animateInDone
      );
 }

 function contentLoadDone (responseText, textStatus, XMLHTTPStatus) {
      // new content loaded and displayed on div since we used .load()
      if (textStatus == 'success') {
           // change the fold size
           $('#fold').animate(
                {height:'350px'}, // or the new height of the contentBox or something else
                // this can also be {height:'+50px'}
                400, 
                'swing', 
                foldReady
           );
      } else {
           // handle errors
      }
 }

 function animateOutDone () {
      // load the new content by using .load or .ajax
      $('#contentBox').load(
           'newcontent.html',
           complete:contentLoadDone
      );
 }

 function contentChange () {
      // animate the content box out
      $('#contentBox').animate(
           {'left':window.innerWidth},
           400,
           'swing',
           complete: animateOutDone
      );
 }
我不确定
.animate
调用的确切语法,但您可以从相关文档中找到所有可能的选项

添加到编辑2: 您需要将UI的状态存储在某个位置。这可以很简单,只要有一个只存储当前页面名称的变量,也可以有一个类层次结构,其中每个页面都有自己的类,具有不同的UI输入/输出动画

var pageHome = function () {
    this.animIn = function () {
       // animate home page in
    }

    this.animOut = function (newpage) {
       // animate home page out and set newpage.animIn as the callback for when the animation in done
    }
}

var pageNow = pageHome;
pageNow.animIn();

我个人喜欢函数对象。

您已经为自己大致概述了需要执行的操作,因此我将提供一个未经测试的
概述,说明如何使类似的操作正常运行

 function animateInDone () {
      // do something here
 }

 function foldReady () {
      // fold has been scaled for this content let's show it on screen
      $('#contentBox').animate(
           {'left':'100px'},
           400,
           'swing',
           complete: animateInDone
      );
 }

 function contentLoadDone (responseText, textStatus, XMLHTTPStatus) {
      // new content loaded and displayed on div since we used .load()
      if (textStatus == 'success') {
           // change the fold size
           $('#fold').animate(
                {height:'350px'}, // or the new height of the contentBox or something else
                // this can also be {height:'+50px'}
                400, 
                'swing', 
                foldReady
           );
      } else {
           // handle errors
      }
 }

 function animateOutDone () {
      // load the new content by using .load or .ajax
      $('#contentBox').load(
           'newcontent.html',
           complete:contentLoadDone
      );
 }

 function contentChange () {
      // animate the content box out
      $('#contentBox').animate(
           {'left':window.innerWidth},
           400,
           'swing',
           complete: animateOutDone
      );
 }
我不确定
.animate
调用的确切语法,但您可以从相关文档中找到所有可能的选项

添加到编辑2: 您需要将UI的状态存储在某个位置。这可以很简单,只要有一个只存储当前页面名称的变量,也可以有一个类层次结构,其中每个页面都有自己的类,具有不同的UI输入/输出动画

var pageHome = function () {
    this.animIn = function () {
       // animate home page in
    }

    this.animOut = function (newpage) {
       // animate home page out and set newpage.animIn as the callback for when the animation in done
    }
}

var pageNow = pageHome;
pageNow.animIn();

我个人喜欢函数对象。

你的问题到底是什么?该死的抱歉,在解释最终结果时分心了,添加了确切的问题。你的问题到底是什么?该死的抱歉,在解释最终结果时分心了,添加了确切的问题。非常感谢你的帮助,我明天要测试一下,因为我累坏了。当我让它工作时(或者如果我不工作的话!)会发布实施的任何进展吗?对不起,我的mac坏了一段时间,上面有所有的资源和最新的.psd,所以我不得不推迟一段时间。我一测试完就会告诉你。非常感谢你的帮助,我明天就要测试了,因为我累坏了。当我让它工作时(或者如果我不工作的话!)会发布实施的任何进展吗?对不起,我的mac坏了一段时间,上面有所有的资源和最新的.psd,所以我不得不推迟一段时间。我一测试完就会告诉你。