Поскольку видимость #cats_gallery
переключается, доступное вертикальное пространство пересчитывается изотопом. Это связано с режимом макета masonry
. Чтобы решить проблему, с которой вы столкнулись, вы должны вызвать layout
после изменения видимости.
В вашем коде вам нужно изменить это:
$("#cats_link").click(function() {
$("#cats_gallery").toggle();
$("#text_two").hide();
$("#text_three").hide();
});
следующим образом:
$("#cats_link").click(function() {
$("#cats_gallery").toggle(function () {
$grid.isotope('layout');
});
$("#text_two").hide();
$("#text_three").hide();
});
Чтобы удалить переход, установите свойство transitionDuration
равным нулю (0):
// init Isotope
var $grid = $('.grid').isotope({
itemSelector: '.grid-item',
percentPosition: true,
masonry: {
columnWidth: '.grid-sizer'
},
transitionDuration: 0
});
также установите длительность переключения на 0. Обновите эту строку (обратите внимание на параметр 0 до функции обратного вызова):
$("#cats_gallery").toggle(0, function () {
$grid.isotope('layout');
});