baseframe-js
Version:
Baseframe JS is a comprehensive suite of modular plugins and utilities designed for front-end development
75 lines (74 loc) • 2.15 kB
TypeScript
import type { StringPluginArgChoices } from './types';
import { type BaseElem } from "base-elem-js";
type Axis = 'x' | 'y';
export interface IParallaxDefaults {
speed: number;
zSpeed: number;
axis: Axis;
cssPrefix: string;
scrollAxis: Axis;
zAxis: boolean;
relativeElem: false | BaseElem;
bgFill: boolean;
rootMargin: number | [number, number];
minWidth: number | null;
maxWidth: number | null;
scrollMaxPxStop: number;
zScrollMaxPxStop: number;
}
interface IElementInView {
top: number;
left: number;
bottom: number;
right: number;
}
export interface IParallaxOptions extends Partial<IParallaxDefaults> {
}
export default class Parallax {
#private;
params: IParallaxDefaults;
zInitOffset: number;
index: number;
instanceEvent: string;
$window: BaseElem;
$element: BaseElem;
element: HTMLElement;
elementOffset: IElementInView;
$relElem: BaseElem;
winHeight: number;
winWidth: number;
elemHeight: number;
elemWidth: number;
speed: number;
zSpeed: number;
fillAmount: number;
bgFill: boolean;
bgFillProp: 'height' | 'width';
axis: Axis;
zAxis: boolean;
scrollMaxPxStop: number;
zScrollMaxPxStop: number;
rootMargin: [number, number];
lastZSpeed: number;
lastCssInProps: Record<string, string>;
minWidthIfSet: boolean;
maxWidthIfSet: boolean;
effectCleared: boolean;
cssPrevDir: string[] | string;
static defaults: IParallaxDefaults;
static version: string;
static pluginName: string;
constructor(element: HTMLElement, options: IParallaxOptions | StringPluginArgChoices, index: number);
getElementRects(): IElementInView;
parallax(s: Parallax): void;
isInView(scrollVertical: boolean, pixelStart: number, scrollDir: number, rootMargin: number): boolean;
static remove(element: BaseElem, plugin?: Parallax): void;
}
export interface ParallaxPlugin {
parallax(options?: IParallaxOptions | StringPluginArgChoices): BaseElem;
}
declare module 'base-elem-js' {
interface BaseElem extends ParallaxPlugin {
}
}
export {};