我试图在使用砌体库的元素上单击一次。它的工作方式是,当我点击它扩展的元素时(我添加了类以使框更大),同时页面正在滚动到该框。问题是,当你展开盒子时,它可能会掉下一条线,这意味着调用滚动的函数会滚动到错误的地方。它应该做的布局,并获得元素的新位置,然后移动...砌体 - 滚动到布局中单击的元素 - 无限
我知道它几乎工作。它正在扩展盒子并进行新的布局,并在完成后将页面滚动到盒子中......但它看起来有点奇怪,它首先移动所有盒子以获得新布局,然后停止并移动页面。我宁愿这一举一动。这是可能的。
这里是我的代码:
$(document).ready(function() {
var $container = $('#container');
// initialize
var msnry = new Masonry(container, {
columnWidth: 280,
itemSelector: '.item'
});
$('.openBoks').on('click', function() {
// this is my element
var thisBox = $(this).parent().parent();
// adding the class to expand it
thisBox.addClass('opened');
// calling method to do new layout
msnry.layout();
msnry.on('layoutComplete', function(msnryInstance, laidOutItems)
{
$('html, body').animate({
scrollTop: (thisBox.offset().top-10)
}, 700);
return true;
});
});
});