UNPKG

vidstack

Version:

Build awesome media experiences on the web.

42 lines (41 loc) 1.89 kB
import { ComponentController, ComponentInstance } from 'maverick.js/element'; export declare class IntersectionObserverController extends ComponentController { private _init; private _observer; constructor(instance: ComponentInstance, _init: IntersectionObserverInit); protected onConnect(el: HTMLElement): () => void; /** * Disconnect any active intersection observers. */ _disconnect(): void; } export interface IntersectionObserverInit { /** * The element that is used as the viewport for checking visibility of the target. Must be the * ancestor of the target. Defaults to the browser viewport if not specified or if `null`. */ root?: Element | Document | null; /** * Margin around the root. Can have values similar to the CSS margin property, e.g. * "10px 20px 30px 40px" (top, right, bottom, left). The values can be percentages. This set * of values serves to grow or shrink each side of the root element's bounding box before * computing intersections. Defaults to all zeros. */ rootMargin?: string; /** * Either a single number or an array of numbers which indicate at what percentage of the * target's visibility the observer's callback should be executed. If you only want to detect * when visibility passes the `50%` mark, you can use a value of `0.5`. If you want the callback * to run every time visibility passes another `25%`, you would specify the array * `[0, 0.25, 0.5, 0.75, 1]`. * * The default is `0` (meaning as soon as even one pixel is visible, the callback will be run). * A value of `1.0` means that the threshold isn't considered passed until every pixel is * visible. */ threshold?: number | number[]; /** * Invoked when an intersection event occurs. */ callback?: IntersectionObserverCallback; }