同位素 - 在第一次加载时隐藏元素

时间:2012-10-16 01:57:36

标签: javascript jquery-isotope

按照有关infinite scroll的说明,我能够隐藏第2,3,4页等新内容,直到完成加载然后动画。现在我想实现这些相同的效果,但主要内容,第一页是什么。有帮助吗? 我正在使用的代码:

<script>
    $(function(){
      var $container = $('#boxes');
      $container.imagesLoaded( function(){
        $container.isotope({
          itemSelector : '.box' 
        });
      });  
</script>

<script>
$('#boxes').isotope({ 
 // options
   itemSelector : '.box',
   layoutMode : 'masonry'
    masonry : {
          columnWidth : 325
        },
});
</script>

<script>
   $(function(){
             var $container = $('#boxes');
             $container.imagesLoaded(function(){
                 $container.isotope({
                     itemSelector: '.box'
                 });
             });
              $container.infinitescroll({
        navSelector  : '#navigation',   
        nextSelector : '#navigation a#next', 
        itemSelector : '.box',    

        loading: {
            finishedMsg: 'no more pages to load.',
            img: 'http://i.imgur.com/qkKy8.gif'
                 }
             },
             function(newElements){ 
                 var $newElems = jQuery( newElements ).hide()
                 console.log('Elements Retrieved:');
                 var $newElems = $(newElements);
                 $container.imagesLoaded(function(){
                     $newElems.fadeIn(); // fade in when ready
           $container.isotope('appended', $newElems, function(){console.log('Appended');});
                 });
             });
         });

  </script>

这是the blog。提前谢谢!

2 个答案:

答案 0 :(得分:4)

我的意思是 - 在你的CSS中放

#container {
    display: none;
}

默认隐藏#container,因此最初不会显示;然后,在你的脚本中,你只需要

$container.show();

在你要展示的地方;例如,当第一页的所有内容都已加载或者您希望第一次.show()#container时。简单示例here

答案 1 :(得分:0)

使用hide()(即display:none)的解决方案的一个小缺点是,这需要在布局之前发生,因为Isotope没有布置隐藏元素,因此您可以看到最初的&#34;混乱&#34;一瞬间,我觉得不愉快。 更好的解决方案是设置可见性:隐藏,然后进行布局,然后再次显示可见性:可见。这也将容器边框设置为所有元素的大小。