three-scrollify
Version:
Declarative scroll-triggered animations for Three.js — like CSS for 3D.
23 lines (20 loc) • 586 B
TypeScript
import * as THREE from 'three';
export interface MeshStyleConfig {
position?: (mesh: THREE.Mesh) => [number, number, number];
rotation?: (mesh: THREE.Mesh) => [number, number, number];
scale?: (mesh: THREE.Mesh) => [number, number, number];
customStyle?: (mesh: THREE.Mesh) => void;
}
export interface ScrollStyleSheet {
[sectionId: string]: {
[meshName: string]: MeshStyleConfig;
};
}
export function createScrollSheet(
meshes?: THREE.Mesh[],
styleSheet?: ScrollStyleSheet,
threshold?: number
): {
observers: IntersectionObserver[];
elements: Element[];
};