砌体网格点击

Masonry grid onclick

我正在使用砖石构建我想在点击时打开和关闭的产品部分。 我已经添加了 onclick 但如您所见 http://fi-testing.co.uk/zeffire-web/products.html 它正在工作,但我遇到了一些问题。 1)它们都打开 onclick 而不是只打开相关的 2)它们在调整大小时不重新对齐(它们重叠) 3)我希望它们打开缓慢。

我已经尝试添加(仍在代码中)slideDown(600, masonryUpdate); 到 .item 函数以对缓慢的移动进行排序,并重新更新砌体,但这没有做任何事情。

这是完整的功能

$(document).ready(function(){
        $(".item").click(function(){
            $(".item").addClass("intro").slideDown(600, masonryUpdate);
        });
    });

我试过使用这个 http://masonry.desandro.com/appendix.html 但我是它的新手,所以不确定在哪里添加它,以使其与 'onclick' 部分对齐。

任何帮助将不胜感激?谢谢。

通过执行此操作

,您只需处理 click 事件处理程序 中被单击的元素
$(document).ready(function(){
    $(".item").click(function(){
        var a= $(this), b = a.parent();
        b.find(".intro").each(function(index){
           if(a !== $(this)) {
              // close this element since it's not the clicked one
              // $(this).slideUp() or $(this).addClass('close') if you have a custom class for closing elements
           }
        });
        a.addClass("intro").slideDown(600, masonryUpdate);
    });
});

要解决问题 1) 你会按照我的评论去做

$(this).addClass("intro").slideDown(600, masonryUpdate);

对于 2) 和 3) 你需要做类似

的事情
$(document).ready(function(){
    $(".item").click(function(){
        $(".intro").animate({"height": 500}, "fast").removeClass("intro"); // reset previous elements

        $(this).addClass("intro").slideDown("slow", function() { msnry.layout(); }); // refresh layout
    });
});