2014-01-08 79 views
2

在下面的代码中,一个div隐藏起来,直到它从第三方服务器获得OK,然后通过jQuery呈现它。目的是创造一个平稳加载的印象。问题在于div下面的段落在div被加载后被推下,这打破了这个技巧的目的。解决这个问题的最佳方法是什么?在隐藏div加载时预留空白空间

http://jsfiddle.net/Sh7aA/7/

<div id="fb-root"></div> 
<p style="text-align:center">Follow us!</p> 
<center style="display: none;" id="social"> 
    <div class="g-plusone" data-size="medium"></div> 
    <div class="fb-like" data-href="https://developers.facebook.com/docs/plugins/" data-layout="button_count" data-action="like" data-show-faces="false" data-share="false"></div> 
</center> 

<p style="text-align:center">Test paragraph of text<br> 
Paragarph continued</p> 
+1

替换'显示:none' 'visibility:hidden',这使得元素停留在流中。 – adeneo

+0

@adeneo仅在div中的内容与要加载内容的长度大致相同时才有所帮助 – yochannah

+1

作为一个附注,'

'被折旧!不要使用它! –

回答

2

给所述元件的大小,并设置它的不透明度为零所以内容是不可见的

#social {opacity: 0; height: 25px; width: 100%; position: relative;} 

在内容然后动画

$('#social').animate({opacity : 1}, 1000); 

FIDDLE

+0

我讨厌挖这个备份,但使用这种技术显然隐藏了安装了广告块的访问者的按钮。广告块对此动画不满意,究竟有什么办法解决这个问题? –

5

设置,其中内容被加载到匹配加载的内容的高度的容器的min-height

+1

最小高度似乎没有帮助 –