目前我在使用 jQuery Masonry 插件时遇到了一个烦人的错误。 事情是这样的:我想做一个两栏的常见问题解答页面,我在其中用砖石 float div。 在这个 div 里面是一个 h3-Tag,它会触发一个 slideToggle 事件,并展开一个隐藏的 div (div.answer)。问题是,如果我单击 h3 标签并触发事件,div.answer 会扩展,但会覆盖下面的 div 几秒钟,直到它到达最终和正确的位置。
这是 slideToggle 事件的脚本: (如您所见,我已经尝试在脚本中的多个位置调用 masonry 函数,但并没有解决问题)
$(document).ready(function() {
$('.answer').hide();
$('#container').masonry();
$('.show').click(function() {
imgelem = $(this);
$(this).parent().next().stop().slideToggle("slow", function() {
$('#container').masonry('reload');
if ($(this).css("display") == "none") {
imgelem.attr("src", "images/expand.png");
}
else {
imgelem.attr("src", "images/collapse.png");
}
});
$('#container').masonry();
});
$('#container').masonry('reload');
});
在这里你可以看到问题:http://jsfiddle.net/2huZd/3/
我希望有人能帮助我!
编辑:没有人能解决这个问题? :(
最佳答案
您可以在 slideToggle()
函数上使用 step
选项并告诉 masonry 重新计算每一步的位置...但可能需要处理的信息太多如果您的网格上有太多元素。
关于jQuery Masonry 在 slideToggle 事件上重叠 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13318994/