VirtualPanel
class VirtualPanel extends Panel
An slide data component that holds information of a single HTMLElement
Constructor
new VirtualPanel(options, options.index, options.align, options.flicking)
PARAMETER | TYPE | OPTIONAL | DEFAULT | DESCRIPTION |
---|---|---|---|---|
options | object | An options object | ||
options.index | number | ✔️ | An initial index of the panel | |
options.align | Constants.ALIGN | string | number | ✔️ | An initial align value of the panel | |
options.flicking | Flicking | ✔️ | A Flicking instance panel's referencing |
Properties
element
HTMLElement
that panel's referencing
Type: HTMLElement
cachedInnerHTML
Cached innerHTML by the previous render function
Type: string | null
elementIndex
An number for indexing which element it will be rendered on
Type: number
elementProvider
index
Index of the panel
Type: number
position
Position of the panel, including alignPosition
Type: number
size
Cached size of the panel element
This is equal to element's offsetWidth
if horizontal is true
, and offsetHeight
else
Type: number
sizeIncludingMargin
Panel's size including CSS margin
This value includes element's margin left/right if horizontal is true
, and margin top/bottom else
Type: number
height
Height of the panel element
Type: number
margin
Cached CSS margin
value of the panel element
Type: object
PROPERTY | TYPE | DESCRIPTION |
---|---|---|
prev | number | CSS margin-left when the horizontal is true , and margin-top else |
next | number | CSS margin-right when the horizontal is true , and margin-bottom else |
alignPosition
Align position inside the panel where Camera's alignPosition inside viewport should be located at
Type: number
removed
A value indicating whether the panel's removed
Type: boolean
rendered
A value indicating whether the panel's element is being rendered on the screen
Type: boolean
loading
A value indicating whether the panel's image/video is not loaded and waiting for resize
Type: boolean
range
Panel element's range of the bounding box
Type: object
PROPERTY | TYPE | DESCRIPTION |
---|---|---|
min | number | Bounding box's left(horizontal: true) / top(horizontal: false) |
max | number | Bounding box's right(horizontal: true) / bottom(horizontal: false) |
toggled
A value indicating whether the panel's position is toggled by circular behavior
Type: boolean
toggleDirection
A direction where the panel's position is toggled
Type: DIRECTION
offset
Actual position offset determined by Panel#order
Type: number
progress
Progress of movement between previous or next panel relative to current panel
Type: number
outsetProgress
Progress of movement between points that panel is completely invisible outside of viewport(prev direction: -1, selected point: 0, next direction: 1)
Type: number
visibleRatio
Percentage of area where panel is visible in the viewport
Type: number
align
A value indicating where the alignPosition should be located at inside the panel element
Type: Constants.ALIGN | string | number
Methods
markForShow
Mark panel element to be appended on the camera element
markForHide
Mark panel element to be removed from the camera element
resize
Update size of the panel
Returns: this
PARAMETER | TYPE | OPTIONAL | DEFAULT | DESCRIPTION |
---|---|---|---|---|
cached | object | ✔️ | Predefined cached size of the panel |
setSize
Change panel's size. This will change the actual size of the panel element by changing its CSS width/height property
Returns: this
PARAMETER | TYPE | OPTIONAL | DEFAULT | DESCRIPTION |
---|---|---|---|---|
size | object | ✔️ | New panel size | |
size.width | number | string | ✔️ | CSS string or number(in px) | |
size.height | number | string | ✔️ | CSS string or number(in px) |
contains
Check whether the given element is inside of this panel's element
Returns: boolean
- A Boolean value indicating the element is inside of this panel element
PARAMETER | TYPE | OPTIONAL | DEFAULT | DESCRIPTION |
---|---|---|---|---|
element | HTMLElement | The HTMLElement to check |
destroy
Reset internal state and set removed to true
Returns: void
includePosition
Check whether the given position is inside of this panel's range
Returns: boolean
- A Boolean value indicating whether the given position is included in the panel range
PARAMETER | TYPE | OPTIONAL | DEFAULT | DESCRIPTION |
---|---|---|---|---|
pos | number | A position to check | ||
includeMargin | boolean | ✔️ | false | Include margin to the range |
includeRange
Check whether the given range is fully included in this panel's area (inclusive)
Returns: boolean
- A Boolean value indicating whether the given range is fully included in the panel range
PARAMETER | TYPE | OPTIONAL | DEFAULT | DESCRIPTION |
---|---|---|---|---|
min | number | Minimum value of the range to check | ||
max | number | Maximum value of the range to check | ||
includeMargin | boolean | ✔️ | false | Include margin to the range |
isVisibleOnRange
Check whether the panel is visble in the given range (exclusive)
Returns: boolean
- A Boolean value indicating whether the panel is visible
PARAMETER | TYPE | OPTIONAL | DEFAULT | DESCRIPTION |
---|---|---|---|---|
min | number | Minimum value of the range to check | ||
max | number | Maximum value of the range to check |
focus
Move Camera to this panel
Returns: Promise<void>
- A Promise which will be resolved after reaching the panel
PARAMETER | TYPE | OPTIONAL | DEFAULT | DESCRIPTION |
---|---|---|---|---|
duration | number | ✔️ | Duration of the animation (unit: ms) |
prev
Get previous(index - 1
) panel. When the previous panel does not exist, this will return null
instead
If the circular is enabled, this will return the last panel if called from the first panel
Returns: Panel | null
- The previous panel
next
Get next(index + 1
) panel. When the next panel does not exist, this will return null
instead
If the circular is enabled, this will return the first panel if called from the last panel
Returns: Panel | null
- The previous panel
increaseIndex
Increase panel's index by the given value
Returns: this
PARAMETER | TYPE | OPTIONAL | DEFAULT | DESCRIPTION |
---|---|---|---|---|
val | number | An integer greater than or equal to 0 |
decreaseIndex
Decrease panel's index by the given value
Returns: this
PARAMETER | TYPE | OPTIONAL | DEFAULT | DESCRIPTION |
---|---|---|---|---|
val | number | An integer greater than or equal to 0 |
updatePosition
Returns: this
toggle
Returns: boolean
- toggled
PARAMETER | TYPE | OPTIONAL | DEFAULT | DESCRIPTION |
---|---|---|---|---|
prevPos | number | |||
newPos | number |
updateCircularToggleDirection
Returns: this