Javascript Jquery页面更改没有闪烁效果

Javascript Jquery页面更改没有闪烁效果,javascript,jquery,Javascript,Jquery,如何在没有内容闪现的情况下实现页面加载。我有一个日历,在更改月份时,我可以在页面更改时保留顶部栏(使用sammy.js),但当我更改月份时,内容会闪烁,看起来很难看。我试过淡入淡出,但没能让它看起来好看。加载图像是一种方式吗?如果是这样的话,那该怎么做呢?我对jquery还相当陌生 现在我的代码是 this.get('#/calendar/:month/:year', function(context) { context.app.swap('');

如何在没有内容闪现的情况下实现页面加载。我有一个日历,在更改月份时,我可以在页面更改时保留顶部栏(使用sammy.js),但当我更改月份时,内容会闪烁,看起来很难看。我试过淡入淡出,但没能让它看起来好看。加载图像是一种方式吗?如果是这样的话,那该怎么做呢?我对jquery还相当陌生

现在我的代码是

 this.get('#/calendar/:month/:year', function(context) {
              context.app.swap('');
              context.$element().fadeOut('slow');
              context.$element().load('calshow.php?m=' + this.params['month'] +'&y=' + this.params['year'] +'');
              context.$element().fadeIn('slow');
                       });
提前谢谢你的帮助,我被难住了

黑暗中射击猜测

试试这个

this.get('#/calendar/:month/:year', function(context) {
              var $currentElement = context.$element();

              context.app.swap('');
              $currentElement.fadeOut('slow', function(){
                  $currentElement.load('calshow.php?m=' + this.params['month'] +'&y=' + this.params['year'] +'', function(){
                      $currentElement.fadeIn('slow');
                  });
              });
编辑:编辑示例。淡出法有一个未完成法。这可能对你更有效

再次编辑:发现load方法也有一个oncomplete方法。我不喜欢像这样在完成链接,但它可能会为你工作。我还为上下文创建了一个变量。$element()。我发现当你把这样的东西连在一起的时候这很有帮助

让我知道它是如何运作的

在黑暗中拍摄猜测

 this.get('#/calendar/:month/:year', function(context) {
      context.app.swap('-Have to put text here to fill empty space-').effect('fold');
      context.$element().load('calshow.php?m=' + this.params['month'] +'&y=' + this.params['year'] +'');
      context.$element().show('');
试试这个

this.get('#/calendar/:month/:year', function(context) {
              var $currentElement = context.$element();

              context.app.swap('');
              $currentElement.fadeOut('slow', function(){
                  $currentElement.load('calshow.php?m=' + this.params['month'] +'&y=' + this.params['year'] +'', function(){
                      $currentElement.fadeIn('slow');
                  });
              });
编辑:编辑示例。淡出法有一个未完成法。这可能对你更有效

再次编辑:发现load方法也有一个oncomplete方法。我不喜欢像这样在完成链接,但它可能会为你工作。我还为上下文创建了一个变量。$element()。我发现当你把这样的东西连在一起的时候这很有帮助

让我知道结果如何

 this.get('#/calendar/:month/:year', function(context) {
      context.app.swap('-Have to put text here to fill empty space-').effect('fold');
      context.$element().load('calshow.php?m=' + this.params['month'] +'&y=' + this.params['year'] +'');
      context.$element().show('');
我一直在摆弄它,这段代码对于我想要它做的事情来说似乎工作得很好。它仍然几乎是一样的,奇特的效果只是掩盖了它的“闪光”


我一直在摆弄它,这段代码对于我想要它做的事情来说似乎工作得很好。它仍然几乎是一样的,奇特的效果只是掩盖了它的“闪光”

与上面的代码具有相同的效果。谢谢你的尝试!通过看这个例子,我认为您希望淡出,加载数据,然后淡入,但是相反,在jquery转换完全淡出之前加载数据。。。让我来看看这个,然后再回来看看。是的,这正是我想要做的,但是jquery对我来说是相当新的,所以我不知道如何完成它。哈哈。但是太棒了,谢谢!你试过把
fadeIn
放进
load
吗?好的,看看这把小提琴。这取决于你想做什么。我给你的方法是做你想做的事情的正确方法。为什么不加载是另一个问题,我不认为这与此有关。我确实注意到,如果我在你的代码上加上一些断点,它就不能正常工作。我不是一个使用.load()的超级粉丝,因为在我看来这只是一个小小的痛苦。但这是我的观点。与我上面的代码具有相同的效果。谢谢你的尝试!通过看这个例子,我认为您希望淡出,加载数据,然后淡入,但是相反,在jquery转换完全淡出之前加载数据。。。让我来看看这个,然后再回来看看。是的,这正是我想要做的,但是jquery对我来说是相当新的,所以我不知道如何完成它。哈哈。但是太棒了,谢谢!你试过把
fadeIn
放进
load
吗?好的,看看这把小提琴。这取决于你想做什么。我给你的方法是做你想做的事情的正确方法。为什么不加载是另一个问题,我不认为这与此有关。我确实注意到,如果我在你的代码上加上一些断点,它就不能正常工作。我不是一个使用.load()的超级粉丝,因为在我看来这只是一个小小的痛苦。但这是我的观点。好吧,确保你在所有主要浏览器中都测试过这个。不同的浏览器(例如IE)不会以完全相同的方式进行这些转换,虽然它可以在chrome中工作,但在IE或firefox中不会。并不是说这在所有浏览器中都不起作用,只是一个测试提示。希望这对你有用,另外,我之前用一种新的方法更新了我的示例,如果这对你不起作用,你可能会想尝试一下。是的,我在所有的例子中都进行了测试,它甚至在IE中出人意料地起作用(通常我只是跳过IE的编码,因为这样很方便!)我想这就是我要做的,它给它一个整洁的效果,使它看起来很现代。另外,您的另一个方法也不起作用,我认为它一定与sammyjs冲突。不过还是非常感谢你!好的,请确保在所有主要浏览器中都进行了测试。不同的浏览器(例如IE)不会以完全相同的方式进行这些转换,虽然它可以在chrome中工作,但在IE或firefox中不会。并不是说这在所有浏览器中都不起作用,只是一个测试提示。希望这对你有用,另外,我之前用一种新的方法更新了我的示例,如果这对你不起作用,你可能会想尝试一下。是的,我在所有的例子中都进行了测试,它甚至在IE中出人意料地起作用(通常我只是跳过IE的编码,因为这样很方便!)我想这就是我要做的,它给它一个整洁的效果,使它看起来很现代。另外,您的另一个方法也不起作用,我认为它一定与sammyjs冲突。不过还是非常感谢你!