Gridstack.js предоставляет гибкий и мощный механизм для создания
динамических сеток с возможностью перетаскивания и изменения размеров
элементов. Все ключевые настройки задаются при инициализации через
объект опций, передаваемый методу GridStack.init() или при
создании нового экземпляра через new GridStack(...).
columnОпределяет количество колонок в сетке. Значение по умолчанию —
12.
const grid = GridStack.init({ column: 6 });
numbercellHeight и
cellHeightUnitЗадают высоту ячеек сетки.
cellHeight: числовое значение высоты
ячейки (по умолчанию 60).cellHeightUnit: единицы измерения,
строка (px или %).auto, чтобы высота ячейки
автоматически подстраивалась под содержимое.GridStack.init({ cellHeight: 80, cellHeightUnit: 'px' });
verticalMarginОпределяет вертикальный отступ между элементами.
number или строка с единицами (px,
%).10.floatОпция включает или выключает плавающее поведение элементов.
booleanfalsetrue, элементы не выталкиваются вниз другими
элементами, а могут занимать пустые промежутки сверху.GridStack.init({ float: true });
disableOneColumnModeКонтролирует поведение сетки при сужении окна до одноколоночного режима.
booleanfalsetrue, сетка никогда не переходит в одноколоночный
режим, полезно для управления адаптивной версткой вручную.disableResize и
disableDragУправляют возможностью изменения размеров и перетаскивания элементов.
disableResize: отключает возможность изменения размеров
для всех элементов.disableDrag: отключает перетаскивание.booleanGridStack.init({ disableResize: true, disableDrag: false });
handle и
handleClassОпределяют, какая часть элемента будет точкой захвата для перетаскивания.
handle: CSS-селектор, указывающий на элемент внутри
виджета, которым можно перетаскивать.handleClass: CSS-класс, который можно добавить к
виджету для захвата.GridStack.init({ handle: '.grid-stack-item-header' });
acceptWidgetsПозволяет сетке принимать новые виджеты, перетаскиваемые извне.
booleanfalsealwaysShowResizeHandleОпция управления видимостью маркера изменения размеров.
booleantrue, маркеры всегда видны, даже без наведения
мыши.animateВключает плавную анимацию при перемещении и изменении размеров элементов.
booleanfalseGridStack.init({ animate: true });
removable и
removeTimeoutУправляют возможностью удаления элементов путем перетаскивания их за пределы сетки.
removable: включает удаление элементов (boolean).removeTimeout: задержка в миллисекундах перед удалением
элемента после его отпускания за пределами сетки.minRow и maxRowОграничивают минимальное и максимальное количество рядов в сетке.
numberresizable и
draggable (объекты)Более детальная настройка поведения элементов:
resizable: объект с ключами
handles, autoHide, start,
stop, resize.draggable: объект с ключами
handle, start, stop,
drag.GridStack.init({
resizable: { handles: 'se, sw', autoHide: true },
draggable: { handle: '.grid-stack-item-header' }
});
staticGridЕсли true, сетка становится неактивной,
элементы не перетаскиваются и не ресайзятся.
columnWidthПозволяет задать фиксированную ширину колонки, вместо автоматического деления по количеству колонок.
numbercellHeight для создания
квадратных или пропорциональных ячеек.nestedПозволяет создавать вложенные сетки, где один виджет может содержать собственную Gridstack-сетку.
booleanfalsealwaysShowResizeHandleОпция управления видимостью маркера изменения размеров.
booleantrue, маркеры всегда видны, даже без наведения
мыши.column и maxRowКомбинируются для адаптивного управления сеткой: при изменении ширины окна и ограничении количества рядов сетка может автоматически перестраиваться, сохраняя виджеты внутри допустимого диапазона.
Gridstack.js позволяет:
oneColumnModeClass, cellHeight строкой).added, removed, resized,
dragstart, dragstop).grid.addWidget(), grid.removeWidget(),
grid.resize().Эти возможности делают инициализационный объект универсальным инструментом для тонкой настройки поведения сетки.