在AJAX拉后,FadeIn DIV

时间:2011-07-28 18:05:36

标签: javascript jquery ajax

我有一些讨厌的代码:P使用AJAX更新div,但我希望看到它的fadein效果。问题是,我有一个图像加载并显示在div没有显示任何内容的间隔期间。分析它的底部。我能做些什么让它变得褪色?

function testing(str)
{
var xmlhttp;
if (str=="")
  {
  document.getElementById("myDiv").innerHTML="";
  return;
  }
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {

    document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
    }
  }
$('#myDiv').html('<div style="text-align:center; padding-top:195px;"><img src="../images/loaderajax.gif" width="220" height="19" /></div>');
xmlhttp.open("GET","getuser.php?q="+str,true);
$('#myDiv').hide();
xmlhttp.send();
$('#myDiv').fadeIn();
}

3 个答案:

答案 0 :(得分:2)

如果你可以包装返回的内容,我会在ajax响应中做这样的事情:

$("<div/>").html(xmlhttp.responseText).appendTo("#myDiv").hide().fadeIn();

这将允许您的图像显示并且仅淡入新内容。

答案 1 :(得分:1)

您的代码是古怪的,并且与您的ajax调用无关。你正在使用JQuery,所以利用它! :)

$.ajax({
   url: 'getuser.php',
   data: str,
   beforeSend(jqXHR, settings) {
        $('#myDiv').html('<div style="text-align:center; padding-top:195px;"><img src="../images/loaderajax.gif" width="220" height="19" /></div>');
    },
    error:function(jqXHR, textStatus, errorThrown) {
        $('#myDiv').html(textStatus + ' -- ' + errorThrown);
    },
    success:function(data){
        $('#myDiv').hide().html(data).fadeIn();
    }
 });

答案 2 :(得分:0)

将fadein()调用放在处理响应的代码中。

您为选择器和效果而不是AJAX使用jQuery的原因是什么?