(animator, startX, startY, startTime)
| 178 | } |
| 179 | |
| 180 | function 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) { |
no test coverage detected