Skip to main content
Version: 4.10.1

InfiniteGrid

class InfiniteGrid extends Component

A module used to arrange items including content infinitely according to layout type. With this module, you can implement various layouts composed of different items whose sizes vary. It guarantees performance by maintaining the number of DOMs the module is handling under any circumstance

constructor​

new InfiniteGrid(wrapper, options)
PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
wrapperHTMLElement | string

A base element for a module

optionsOptions

The option object of the InfiniteGrid module

<ul id="grid">
<li class="card">
<div>test1</div>
</li>
<li class="card">
<div>test2</div>
</li>
<li class="card">
<div>test3</div>
</li>
<li class="card">
<div>test4</div>
</li>
<li class="card">
<div>test5</div>
</li>
<li class="card">
<div>test6</div>
</li>
</ul>
<script>
import { MasonryInfiniteGrid } from "@egjs/infinitegrid";
var some = new MasonryInfiniteGrid("#grid").on("renderComplete", function(e) {
// ...
});
// If you already have items in the container, call "layout" method.
some.renderItems();
</script>

Methods​

renderItems​

Rearrange items to fit the grid and render them. When rearrange is complete, the renderComplete event is fired.

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
optionsRenderOptions✔️{}

Options for rendering.

import { MasonryInfiniteGrid } from "@egjs/infinitegrid";
const grid = new MasonryInfiniteGrid();

grid.on("renderComplete", e => {
console.log(e);
});
grid.renderItems();

getWrapperElement​

Returns the wrapper element specified by the user.

getScrollContainerElement​

Returns the container element corresponding to the scroll area.

getContainerElement​

Returns the container element containing item elements.

syncItems​

When items change, it synchronizes and renders items.

Returns: this

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
itemsInfiniteGridItemInfo[]

Options for rendering.

setCursors​

Change the currently visible groups.

Returns: this

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
startCursornumber

first index of visible groups.

endCursornumber

last index of visible groups.

useFirstRenderboolean✔️

Whether the first rendering has already been done.

getStartCursor​

Returns the first index of visible groups.

Returns: number

getEndCursor​

Returns the last index of visible groups.

Returns: number

append​

Add items at the bottom(right) of the grid.

Returns: this


    • An instance of a module itself

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
itemsInfiniteGridInsertedItems

items to be added

groupKeystring | number✔️

The group key to be configured in items. It is automatically generated by default.

ig.append(`<div class="item">test1</div><div class="item">test2</div>`);
ig.append([`<div class="item">test1</div>`, `<div class="item">test2</div>`]);
ig.append([HTMLElement1, HTMLElement2]);

prepend​

Add items at the top(left) of the grid.

Returns: this


    • An instance of a module itself

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
itemsInfiniteGridInsertedItems

items to be added

groupKeystring | number✔️

The group key to be configured in items. It is automatically generated by default.

ig.prepend(`<div class="item">test1</div><div class="item">test2</div>`);
ig.prepend([`<div class="item">test1</div>`, `<div class="item">test2</div>`]);
ig.prepend([HTMLElement1, HTMLElement2]);

insert​

Add items to a specific index.

Returns: this


    • An instance of a module itself

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
indexnumber

index to add

itemsInfiniteGridInsertedItems

items to be added

groupKeystring | number✔️

The group key to be configured in items. It is automatically generated by default.

ig.insert(2, `<div class="item">test1</div><div class="item">test2</div>`);
ig.insert(3, [`<div class="item">test1</div>`, `<div class="item">test2</div>`]);
ig.insert(4, [HTMLElement1, HTMLElement2]);

insertByGroupIndex​

Add items based on group index.

Returns: this


    • An instance of a module itself

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
groupIndexnumber

group index to add

itemsInfiniteGridInsertedItems

items to be added

groupKeystring | number✔️

The group key to be configured in items. It is automatically generated by default.

ig.insertByGroupIndex(2, `<div class="item">test1</div><div class="item">test2</div>`);
ig.insertByGroupIndex(3, [`<div class="item">test1</div>`, `<div class="item">test2</div>`]);
ig.insertByGroupIndex(4, [HTMLElement1, HTMLElement2]);

getStatus​

Returns the current state of a module such as location information. You can use the setStatus() method to restore the information returned through a call to this method.

Returns: InfiniteGridStatus

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
typeSTATUS_TYPE✔️

STATUS_TYPE.NOT_REMOVE = Get all information about items. STATUS_TYPE.REMOVE_INVISIBLE_ITEMS = Get information on visible items only. STATUS_TYPE.MINIMIZE_INVISIBLE_ITEMS = Compress invisible items. You can replace it with a placeholder. STATUS_TYPE.MINIMIZE_INVISIBLE_GROUPS = Compress invisible groups.

includePlaceholdersboolean✔️

Whether to include items corresponding to placeholders.

setPlaceholder​

You can set placeholders to restore status or wait for items to be added.

Returns: this

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
infoPartial<InfiniteGridItemStatus> | null

The placeholder status.

setLoading​

You can set placeholders to restore status or wait for items to be added.

Returns: this

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
infoPartial<InfiniteGridItemStatus> | null

The placeholder status.

appendPlaceholders​

Add the placeholder at the end.

Returns: InsertedPlaceholdersResult

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
itemsnumber | InfiniteGridItemStatus[]

Items that correspond to placeholders. If it is a number, it duplicates the number of copies.

groupKeystring | number✔️

The group key to be configured in items. It is automatically generated by default.

prependPlaceholders​

Add the placeholder at the start.

Returns: InsertedPlaceholdersResult

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
itemsnumber | InfiniteGridItemStatus[]

Items that correspond to placeholders. If it is a number, it duplicates the number of copies.

groupKeystring | number✔️

The group key to be configured in items. It is automatically generated by default.

removePlaceholders​

Remove placeholders

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
type"start" | "end" | {groupKey: string | number}

Remove the placeholders corresponding to the groupkey. When "start" or "end", remove all placeholders in that direction.

setStatus​

Sets the status of the InfiniteGrid module with the information returned through a call to the getStatus() method.

Returns: this

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
statusInfiniteGridStatus

status object of the InfiniteGrid module.

useFirstRenderboolean✔️

Whether the first rendering has already been done.

removeGroupByIndex​

Removes the group corresponding to index.

Returns: this

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
indexnumber

removeGroupByKey​

Removes the group corresponding to key.

Returns: this

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
keynumber | string

removeByIndex​

Removes the item corresponding to index.

Returns: this

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
indexnumber

removeByKey​

Removes the item corresponding to key.

Returns: this

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
keystring | number

updateItems​

Update the size of the items and render them.

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
itemsInfiniteGridItem[]✔️

Items to be updated.

optionsRenderOptions✔️{}

Options for rendering.

getItems​

Return all items of InfiniteGrid.

Returns: InfiniteGridItem[]

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
includePlaceholdersboolean✔️

Whether to include items corresponding to placeholders.

getVisibleItems​

Return visible items of InfiniteGrid.

Returns: InfiniteGridItem[]

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
includePlaceholdersboolean✔️

Whether to include items corresponding to placeholders.

getRenderingItems​

Return rendering items of InfiniteGrid.

Returns: InfiniteGridItem[]

getGroups​

Return all groups of InfiniteGrid.

Returns: InfiniteGridGroup[]

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
includePlaceholdersboolean✔️

Whether to include groups corresponding to placeholders.

getVisibleGroups​

Return visible groups of InfiniteGrid.

Returns: InfiniteGridGroup[]

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
includePlaceholdersboolean✔️

Whether to include groups corresponding to placeholders.

wait​

Set to wait to request data.

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
direction"start" | "end"✔️DIRECTION.END

direction in which data will be added.

ready​

When the data request is complete, it is set to ready state.

isWait​

Returns whether it is set to wait to request data.

destroy​

Releases the instnace and events and returns the CSS of the container and elements.

Returns: void

Events​

changeScroll​

This event is fired when scrolling.

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
eInfiniteGrid.OnChangeScroll

The object of data to be sent to an event

requestAppend​

The event is fired when scrolling reaches the end or when data for a virtual group is required.

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
eInfiniteGrid.OnRequestAppend

The object of data to be sent to an event

requestPrepend​

The event is fired when scrolling reaches the start or when data for a virtual group is required.

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
eInfiniteGrid.OnRequestPrepend

The object of data to be sent to an event

contentError​

The event is fired when scrolling reaches the start or when data for a virtual group is required.

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
eInfiniteGrid.OnContentError

The object of data to be sent to an event

renderComplete​

This event is fired when the InfiniteGrid has completed rendering.

PARAMETERTYPEOPTIONALDEFAULTDESCRIPTION
eInfiniteGrid.OnRenderComplete

The object of data to be sent to an event