gsap 코드 분석
gsap-core.js 파일
- 파일 구조
라인 11: 유틸리티 심볼 정의
라인 11:
let _config = { autoSleep: 120, force3D: "auto", nullTargetWarn: 1, units: {lineHeight:""} },라인 52:
_globals = {},라인 89 :
_forEachName = (names, func) => ((names = names.split(",")).forEach(func)) || names라인 126 :
_setDefaults = (obj, defaults) => { for (let p in defaults) { (p in obj) || (obj[p] = defaults[p]); } return obj; },
라인 701 : Color 관련 심볼 정의
라인 880 : Ticker 관련 심볼 정의
라인 986 : easing 관련 심볼 정의
라인 1110 : caching 관련 심볼 정의
- 라인 1115 :
GSCache클래스 정의
- 라인 1115 :
라인 1142 : animation 관련 심볼 정의
- 라인 1148 :
Animation클래스 정의
- 라인 1148 :
라인 1466 : timeline 관련 심볼 정의
라인 1472 :
Timeline클래스 정의라인 1988 :
_setDefaults(Timeline.prototype, {_lock:0, _hasPause:0, _forcing:0});라인 2290 :
_forEachName(_staggerTweenProps + ",id,stagger,delay,duration,paused,scrollTrigger", name => _staggerPropsToSkip[name] = 1);
라인 2314 : Tween 관련 심볼 정의
라인 2320 :
Tween클래스 정의라인 2364 :
_setDefaults(Tween.prototype, {_targets:[], _lazy:0, _startAt:0, _op:0, _onInit:0});라인 2365 :
_forEachName("staggerTo,staggerFrom,staggerFromTo", name => { Tween[name] = function() { let tl = new Timeline(), params = _slice.call(arguments, 0); params.splice(name === "staggerFromTo" ? 5 : 4, 0, 0); return tl[name].apply(tl, params); } });
라인 2699 : protween 관련 심볼 정의
라인 2786 :
PropTween클래스 정의라인 2815 :
//Initialization tasks _forEachName(_callbackNames + "parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger,easeReverse", name => _reservedProps[name] = 1); _globals.TweenMax = _globals.TweenLite = Tween; _globals.TimelineLite = _globals.TimelineMax = Timeline; _globalTimeline = new Timeline({sortChildren: false, defaults: _defaults, autoRemoveChildren: true, id:"root", smoothChildTiming: true}); _config.stringFilter = _colorStringFilter;
라인 2869 :
Context클래스 정의라인 2974 :
MatchMedia클래스 정의라인 3028 :
_gsap정의라인 3154 :
_forEachName("to,from,fromTo,delayedCall,set,killTweensOf", name => _gsap[name] = Tween[name]); _ticker.add(Timeline.updateRoot); _quickTween = _gsap.to({}, {duration:0});라인 3161 : 플러그인
라인 3249 : 버전
라인 3250 :
_coreReady = 1; _windowExists() && _wake();라인 3253 : export
export const { Power0, Power1, Power2, Power3, Power4, Linear, Quad, Cubic, Quart, Quint, Strong, Elastic, Back, SteppedEase, Bounce, Sine, Expo, Circ } = _easeMap; export { Tween as TweenMax, Tween as TweenLite, Timeline as TimelineMax, Timeline as TimelineLite, gsap as default, wrap, wrapYoyo, distribute, random, snap, normalize, getUnit, clamp, splitColor, toArray, selector, mapRange, pipe, unitize, interpolate, shuffle }; //export some internal methods/orojects for use in CSSPlugin so that we can externalize that file and allow custom builds that exclude it. export { _getProperty, _numExp, _numWithUnitExp, _isString, _isUndefined, _renderComplexString, _relExp, _setDefaults, _removeLinkedListItem, _forEachName, _sortPropTweensByPriority, _colorStringFilter, _replaceRandom, _checkPlugin, _plugins, _ticker, _config, _roundModifier, _round, _missingPlugin, _getSetter, _getCache, _colorExp, _parseRelative }