StickyCells
Feature
A feature which pins cell content to the top of the grid while the row scrolls off the top but is still visible. Very similar to native position: sticky, which because of Grid's multiple-region setup unfortunately cannot be used to achieve the same effect.
When a row is partially scrolled off the top of the viewport, the content of each sticky cell is translated downward to remain visible. When the remaining visible row height is less than the content height, the content scrolls out naturally.
All columns have sticky content by default when this feature is enabled. To opt out a specific column, set stickyContent to false.
For example:
new Grid({
features : {
stickyCells : true
},
columns : [
{ field : 'name', text : 'Name' },
{ field : 'age', text : 'Age', stickyContent : false } // Opt out of stickiness
]
});
Note that if you have custom CSS targeting cell content, you may need to adjust it to account for the additional wrapper element added by this feature when stickyContent is true. The wrapper has the class .b-sticky-cell-content. The DOM structure of a sticky cell looks like this:
<!-- Without StickyCells or with stickyContent: false -->
<div class="b-grid-cell" data-column-id="name">
Alice
</div>
<!-- With StickyCells and stickyContent: true -->
<div class="b-grid-cell" data-column-id="name">
<div class="b-sticky-cell-content">
Alice
</div>
</div>
This feature is disabled by default.
See also
- MergeCells - Merge consecutive equal-value cells
- Column - Base column class
Configs
Configs are options you supply in a configuration object when creating an instance of this class-
Deprecated:
7.3.0 Use the per-column stickyContent config instead
A CSS selector identifying child elements within cells to pin. Applied to all columns that do not specify their own stickyContent value.
Properties
Properties are getters/setters or publicly accessible variables on this class-
Identifies an object as an instance of StickyCells class, or subclass thereof.
-
Identifies an object as an instance of StickyCells class, or subclass thereof.
Functions
Functions are methods available for calling on the class-
cancelScrollAnimations( )private
Cancels all active scroll-driven animations.
Animation.cancel()removes the animation effect, restoring elements to their un-animated state. -
clearAllTranslations( )private
Clears all sticky translations from all visible rows.
-
onTotalHeightChange( )private
Handles virtual scroll height changes that may shift row positions without changing the top row. Recreates animations so their scroll ranges stay in sync.
-
setupListeners( )private
Attaches scroll listener. Called from both construct and doDisable(false).