MCPcopy
hub / github.com/greensock/GSAP / init

Method init

src/Observer.js:152–420  ·  view source on GitHub ↗
(vars)

Source from the content-addressed store, hash-verified

150 }
151
152 init(vars) {
153 _coreInitted || _initCore(gsap) || console.warn("Please gsap.registerPlugin(Observer)");
154 ScrollTrigger || _setScrollTrigger();
155 let {tolerance, dragMinimum, type, target, lineHeight, debounce, preventDefault, onStop, onStopDelay, ignore, wheelSpeed, event, onDragStart, onDragEnd, onDrag, onPress, onRelease, onRight, onLeft, onUp, onDown, onChangeX, onChangeY, onChange, onToggleX, onToggleY, onHover, onHoverEnd, onMove, ignoreCheck, isNormalizer, onGestureStart, onGestureEnd, onWheel, onEnable, onDisable, onClick, scrollSpeed, capture, allowClicks, lockAxis, onLockAxis} = vars;
156 this.target = target = _getTarget(target) || _docEl;
157 this.vars = vars;
158 ignore && (ignore = gsap.utils.toArray(ignore));
159 tolerance = tolerance || 1e-9;
160 dragMinimum = dragMinimum || 0;
161 wheelSpeed = wheelSpeed || 1;
162 scrollSpeed = scrollSpeed || 1;
163 type = type || "wheel,touch,pointer";
164 debounce = debounce !== false;
165 lineHeight || (lineHeight = parseFloat(_win.getComputedStyle(_body).lineHeight) || 22); // note: browser may report "normal", so default to 22.
166 let id, onStopDelayedCall, dragged, moved, wheeled, locked, axis,
167 self = this,
168 prevDeltaX = 0,
169 prevDeltaY = 0,
170 passive = vars.passive || (!preventDefault && vars.passive !== false),
171 scrollFuncX = _getScrollFunc(target, _horizontal),
172 scrollFuncY = _getScrollFunc(target, _vertical),
173 scrollX = scrollFuncX(),
174 scrollY = scrollFuncY(),
175 limitToTouch = ~type.indexOf("touch") && !~type.indexOf("pointer") && _eventTypes[0] === "pointerdown", // for devices that accommodate mouse events and touch events, we need to distinguish.
176 isViewport = _isViewport(target),
177 ownerDoc = target.ownerDocument || _doc,
178 deltaX = [0, 0, 0], // wheel, scroll, pointer/touch
179 deltaY = [0, 0, 0],
180 onClickTime = 0,
181 clickCapture = () => onClickTime = _getTime(),
182 _ignoreCheck = (e, isPointerOrTouch) => (self.event = e) && (ignore && _isWithin(e.target, ignore)) || (isPointerOrTouch && limitToTouch && e.pointerType !== "touch") || (ignoreCheck && ignoreCheck(e, isPointerOrTouch)),
183 onStopFunc = () => {
184 self._vx.reset();
185 self._vy.reset();
186 onStopDelayedCall.pause();
187 onStop && onStop(self);
188 },
189 update = () => {
190 let dx = self.deltaX = _getAbsoluteMax(deltaX),
191 dy = self.deltaY = _getAbsoluteMax(deltaY),
192 changedX = Math.abs(dx) >= tolerance,
193 changedY = Math.abs(dy) >= tolerance;
194 onChange && (changedX || changedY) && onChange(self, dx, dy, deltaX, deltaY); // in ScrollTrigger.normalizeScroll(), we need to know if it was touch/pointer so we need access to the deltaX/deltaY Arrays before we clear them out.
195 if (changedX) {
196 onRight && self.deltaX > 0 && onRight(self);
197 onLeft && self.deltaX < 0 && onLeft(self);
198 onChangeX && onChangeX(self);
199 onToggleX && ((self.deltaX < 0) !== (prevDeltaX < 0)) && onToggleX(self);
200 prevDeltaX = self.deltaX;
201 deltaX[0] = deltaX[1] = deltaX[2] = 0
202 }
203 if (changedY) {
204 onDown && self.deltaY > 0 && onDown(self);
205 onUp && self.deltaY < 0 && onUp(self);
206 onChangeY && onChangeY(self);
207 onToggleY && ((self.deltaY < 0) !== (prevDeltaY < 0)) && onToggleY(self);
208 prevDeltaY = self.deltaY;
209 deltaY[0] = deltaY[1] = deltaY[2] = 0

Callers 15

constructorMethod · 0.95
ScrollTriggerFunction · 0.45
CSSPlugin.jsFile · 0.45
_checkPluginFunction · 0.45
_initTweenFunction · 0.45
gsap-core.jsFile · 0.45
ScrollSmootherFunction · 0.45
ObserverFunction · 0.45
_initCoreFunction · 0.45
PathEditorFunction · 0.45
PathEditor.jsFile · 0.45
CSSPlugin.jsFile · 0.45

Calls 15

_ignoreCheckFunction · 0.85
onPressFunction · 0.85
onReleaseFunction · 0.85
pauseMethod · 0.80
delayedCallMethod · 0.80
dispatchEventMethod · 0.80
restartMethod · 0.80
disableMethod · 0.80
enableMethod · 0.80
_initCoreFunction · 0.70
_setScrollTriggerFunction · 0.70
_getTargetFunction · 0.70

Tested by

no test coverage detected