2013-01-18 25 views
1

我有这段代码。不透明度0和不透明度1有效!但负载(页)不加载。为什么?opacity = 0后加载html

function cargarContenido(pagina) { 
    $('#content').animate({"opacity":"0"}); 
    if ($('#content').css('opacity') == 0) { 
     $("#content").load(pagina); 
    } 
    $('#content').animate({ "opacity": "1" }); 
} 

,如果我把只有如此,它工作正常

function cargarContenido(pagina) { 
    $("#content").load(pagina); 
} 
+2

'的console.log($( '#内容')的CSS。 ('opacity'))'你确定它返回0吗? (和以前的动画是异步的) – fcalderan

回答

5

您需要使用的animateload方法回调参数按顺序执行代码。试试这个:

function cargarContenido(pagina) { 
    $('#content').animate(
     { "opacity": "0" }, 
     function() { 
      $("#loadimage").show(); // show a loading image 
      // load content when opacity = 0 animation finished 
      $("#content").load(
       pagina, 
       function() { 
        $("#loadimage").hide(); // hide a loading image 
        // make opacity = 1 when content has been loaded 
        $('#content').animate({ "opacity": "1" }); 
       } 
      ) 
     } 
    ); 
} 

注意我已经扩展了这段代码的格式,以清楚发生了什么。如果需要,您可以移除很多间距以缩短间距。

+0

你是最棒的!非常感谢!!!只有一个问题...它的posibble插入load.gif而html加载? –

+0

确实,我会为你更新我的答案。不要忘记将其中的一个答案标记为已接受。 –

2

animate()是异步的,所以当你检查不透明度时,它不是零,因为动画函数还没有完成。您可以使用回调动画做同样的事情,不透明度已完成动画后:

function cargarContenido(pagina) { 
    $('#content').animate({"opacity":"0"}, function() { 
     $(this).load(pagina, function() { 
      $(this).animate({ "opacity": "1" }); 
     }); 
    }); 
} 
-1

尝试使用动画的附加参数:

$('#content').animate({"opacity":"0"}, slow, function() { 
    $("#content").load(pagina); 
    $('#content').animate({ "opacity": "1" }); 
}); 
+0

最后回答... – ATOzTOA

0

我想完之后,你应该做的东西回调函数中的动画,因为它会在完成动画之后运行。 Read the documentation有关complete功能,

$('#content').animate({"opacity":"0"},500,function(){ 
        $("#content").load(pagina,function(){ 
         $('#content').animate({ "opacity": "1" }); 
        });    
    }); 
0

我猜你想要做的是加载任何“pagina”是后#内容的不透明度为0?您应该使用完整的参数而不是问如果不透明度为0:

功能cargarContenido(pagina){

$('#content').animate({"opacity":"0"}, 1000, function(){ 

    $("#content").load(pagina, function(){ 

      $('#content').animate({ "opacity": "1" }); 

    }); 

}); 

}