【问题标题】:reload masonry when div has fadeout onclick?当div有淡出onclick时重新加载砌体?
【发布时间】:2010-05-11 06:09:03
【问题描述】:

我正在使用砖石进行布局。

我使用以下代码为 div 设置了过滤器:

$("#logo").click(function() {
    $(".box").fadeIn();
    $(".box:not(.logo)").fadeOut();
});

当我选择一个项目时,我希望 masonry 重新加载布局,以便重新排列项目并且没有空格。

想法?

谢谢

【问题讨论】:

    标签: jquery html fadeout


    【解决方案1】:

    除非从布局中删除 .box,否则 Masonry 似乎不会重新组织布局。因此,您可以完全删除该框或将其附加到隐藏的 div 中。

    我不确定您希望脚本如何运行,因此我制作了一个带有logoreset 按钮的演示。如果您多次运行该脚本,您会注意到所有隐藏的 div 都附加到布局的末尾,因此您不会在顶部看到太多变化。

    查看demo here(注意:bin 有时无法正常工作,只需再次点击 [Run] 按钮即可)

    新的 HTML

    <div id="holder"></div>
    

    脚本

    $(document).ready(function(){
    
     $('#main').masonry({
        columnWidth: 100, 
        itemSelector: '.box',
        animate: true
     });
    
     $('#logo').click(function(){
      $(".box").fadeIn( '300' );
      $('.box:not(.logo)').fadeOut( '300', function(){ 
       $(this).appendTo('#holder') ;
      });
      setTimeout(function(){ $('#main').masonry() }, 400); // calling masonry to reorganize the layout after the all of the animation has occurred.
     })
    
     $('#reset').click(function(){
      $('#holder').find('.box')
       .hide()
       .appendTo('#main')
       .fadeIn( '300' );
      setTimeout(function(){ $('#main').masonry() }, 400);
     })
    
    })
    

    【讨论】:

    • 反响很好。不幸的是,它的功能只完成了一半......请参阅:jsfiddle.net/Hf8vT 我添加了一个新类“web”,我希望在选择每个项目时重置它。目前,如果我选择 logo,然后选择 web,它不会显示任何内容,因为没有任何项目共享这两个类。我正在尝试一种新的过滤技术 - 但我仍然遇到同样的问题。如果你不介意看看 - jasondaydesign.com/js/jquery.filterablepack.js
    • 但是,如果我可以让您的上述内容正常工作,我会使用它。我正在尝试几种不同的过滤技术。我还使用 easylistsplitter 来获得带有列表过滤的砖石风格布局 - 不幸的是,过滤器仅适用于第一列 - 请参阅 jasondaydesign.com/index2.html
    • 我刚试过这个 - jsfiddle.net/phVxf 并让它工作。我会和你的比较。我不太明白你做了什么,但我看到它也可以工作 - 但偶尔(多次点击后)一些 div 会漂浮在空间中,而不是正确地重新洗牌。我认为我的版本没问题,因为它会重新加载所有版本,然后淡出正确的版本。
    • 现在我还有一个问题 - 如果您查看我的网站 jasondaydesign.com - 您会在照片下方看到一个切换开关。不幸的是,切换内容隐藏在其他 div 下。是否可以使用砖石进行切换,还是我需要摆脱它?感谢您的所有帮助!
    • 好吧,现在我看到我的版本有时也不能正确改组。是超时速度吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-19
    • 2016-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多