目前我遇到了jQuery Masonry插件的烦人错误。 这是交易:我想做一个两栏的常见问题页面,我用石工浮动div。 在这个div内部是一个h3-Tag,它将触发一个slideToggle事件,并展开一个隐藏的div(div.answer)。问题是,如果我点击h3-tag并触发事件,div.answer会扩展,但会将div重叠几秒钟,直到达到最终正确的位置。
以下是slideToggle事件的脚本: (正如你所看到的,我已经尝试在脚本内的几个位置回忆起砌体功能,但它没有解决问题)
$(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/
我希望有人可以帮助我!
编辑:没有人可以解决这个问题? :(答案 0 :(得分:1)
您可以使用step
功能上的slideToggle()
选项告诉砌体重新计算每一步的位置......但如果您的元素太多,可能需要处理太多信息网格。
答案 1 :(得分:0)
我和另一个类似masonr的插件(shapeshift)有同样的问题。问题是只有在完全准备好幻灯片效果后才会触发slideToggle的回调事件。没有(我没有发现至少)任何“在”期间会在每个幻灯片步骤重新初始化砖石的事件。
我找到的唯一解决方案是用显示/隐藏切换替换幻灯片效果。箱子的烦人重叠效果将不再可见,而且我认为用户体验会更好。