MCPcopy Create free account
hub / github.com/joehewitt/scrollability / wrapAnimator

Function wrapAnimator

scrollability.js:180–577  ·  view source on GitHub ↗
(animator, startX, startY, startTime)

Source from the content-addressed store, hash-verified

178}
179
180function wrapAnimator(animator, startX, startY, startTime) {
181 var node = animator.node;
182 var constrained = animator.constrained;
183 var paginated = animator.paginated;
184 var viewport = animator.viewport || 0;
185 var scrollbar = animator.scrollbar;
186 var position = animator.position;
187 var min = animator.min;
188 var max = animator.max;
189 var absMin = min;
190 var absMax = Math.round(max/viewport)*viewport;
191 var pageSpacing = 0;
192 var velocity = 0;
193 var bounceTime = paginated ? kPageBounceTime : kBounceTime;
194 var bounceLimit = animator.bounce;
195 var pageLimit = viewport * kPageLimit;
196 var lastTouch = startTouch = animator.filter(startX, startY);
197 var lastTime = startTime;
198 var timeStep = 0;
199 var stopped = 0;
200 var tracked = [];
201 var offset = node.scrollableOffset||0;
202
203 if (!animator.mute) {
204 var event = {
205 position: position,
206 min: min,
207 max: max,
208 track: addTracker,
209 setSpacing: setSpacing,
210 setOffset: setOffset,
211 setBounds: setBounds
212 };
213 if (!dispatch("scrollability-start", node, event)) {
214 return null;
215 }
216 }
217
218 if (paginated) {
219 if (pageSpacing === undefined) {
220 var excess = Math.round(Math.abs(absMin) % viewport);
221 var pageCount = ((Math.abs(absMin)-excess) / viewport)+1;
222 pageSpacing = excess / pageCount;
223 }
224
225 var pageIndex = Math.round(position/(viewport+pageSpacing));
226 min = max = pageIndex * (viewport+pageSpacing);
227 absMin += pageSpacing;
228 }
229
230 if (scrollbar) {
231 addTracker(scrollbar, trackScrollbar);
232 if (!scrollbar.parentNode) {
233 node.parentNode.appendChild(scrollbar);
234 }
235 }
236
237 if (node.earlyEnd) {

Callers 1

findAnimatorsFunction · 0.85

Calls 4

dispatchFunction · 0.85
addTrackerFunction · 0.85
playFunction · 0.85
updateFunction · 0.85

Tested by

no test coverage detected