@@ -128,19 +128,16 @@ angular.module('ui.scroll', [])
128
128
reset ()
129
129
130
130
buffer .minIndex = (value ) ->
131
- # console.log "before ds #{datasource.minIndex} local #{buffer.localMinIndex}"
132
131
if arguments .length
133
132
if buffer .bof
134
133
datasource .minIndex = value
135
134
else
136
135
datasource .minIndex = Math .min value, datasource .minIndex || Number .MAX_VALUE
137
136
buffer .localMinIndex = datasource .minIndex
138
- # console.log "after ds #{datasource.minIndex} local #{buffer.localMinIndex}"
139
137
else
140
138
offset = buffer .localMinIndex - (datasource .minIndex || origin)
141
139
buffer .localMinIndex -= offset
142
- # console.log "after ds #{datasource.minIndex} local #{buffer.localMinIndex} , #{offset}"
143
- offset : offset
140
+ offset : offset # if minIndex is decremented outside of the scroller offset value is by how much
144
141
value : buffer .localMinIndex
145
142
146
143
buffer .maxIndex = -> datasource .maxIndex || origin
@@ -171,7 +168,7 @@ angular.module('ui.scroll', [])
171
168
topPadding = null
172
169
bottomPadding = null
173
170
174
- bufferPadding = -> viewport .outerHeight () * Math .max (0.1 , + padding || 0.1 ) # some extra space to initiate preload
171
+ bufferPadding = -> viewport .outerHeight () * Math .max (0.1 , + padding . padding || 0.1 ) # some extra space to initiate preload
175
172
176
173
viewport .createPaddingElements = (template ) ->
177
174
topPadding = new Padding template
@@ -198,7 +195,6 @@ angular.module('ui.scroll', [])
198
195
viewport .clipBottom = ->
199
196
# clip the invisible items off the bottom
200
197
overage = 0
201
- # calculateAverageItemHeight()
202
198
overageBottom = viewport .outerHeight () + viewport .averageItemHeight * (buffer .size )
203
199
for i in [buffer .length - 1 .. 0 ]
204
200
item = buffer[i]
@@ -217,7 +213,6 @@ angular.module('ui.scroll', [])
217
213
# clip the invisible items off the top
218
214
overage = 0
219
215
heightIncrement = 0
220
- # calculateAverageItemHeight()
221
216
overageTop = (- 1 ) * viewport .averageItemHeight * buffer .size
222
217
for item in buffer
223
218
if item .element .offset ().top < overageTop
@@ -229,21 +224,16 @@ angular.module('ui.scroll', [])
229
224
buffer .remove (0 , overage)
230
225
buffer .first += overage
231
226
232
- calculateAverageItemHeight = () ->
233
- viewport .averageItemHeight = 0
227
+ viewport .adjustPadding = () ->
234
228
return if not buffer .length
235
229
viewport .averageItemHeight = (buffer[buffer .length - 1 ].element .offset ().top +
236
230
buffer[buffer .length - 1 ].element .outerHeight (true ) -
237
231
buffer[0 ].element .offset ().top ) / buffer .length
238
- console .log " avg #{ viewport .averageItemHeight } "
239
-
240
- viewport .adjustPadding = () ->
241
- return if not buffer .length
242
- calculateAverageItemHeight ()
243
232
minIndex = buffer .minIndex ()
244
- # console.log "offs #{minIndex.offset}"
245
- viewport .adjustScrollTop (minIndex .offset * viewport .averageItemHeight )
246
233
topPadding .height (buffer .first - minIndex .value ) * viewport .averageItemHeight
234
+ if minIndex .offset
235
+ viewport .scrollTop (minIndex .offset * viewport .averageItemHeight )
236
+ # console.log "id #{padding.id} min #{minIndex.value} top #{viewport.scrollTop()} offs #{minIndex.offset * viewport.averageItemHeight}"
247
237
bottomPadding .height (buffer .maxIndex () - buffer .next + 1 ) * viewport .averageItemHeight
248
238
249
239
viewport .adjustScrollTop = (height ) ->
@@ -366,7 +356,7 @@ angular.module('ui.scroll', [])
366
356
367
357
buffer = new Buffer (itemName, $scope, linker, datasource, bufferSize)
368
358
369
- viewport = new Viewport (buffer, element, controllers, $attr . padding )
359
+ viewport = new Viewport (buffer, element, controllers, $attr)
370
360
371
361
adapter = new Adapter $attr, viewport, buffer,
372
362
->
@@ -452,7 +442,7 @@ angular.module('ui.scroll', [])
452
442
for wrapper in toBePrepended
453
443
keepFetching = insertWrapperContent (wrapper) || keepFetching
454
444
wrapper .op = ' none'
455
- adjustedPaddingHeight += wrapper .element .height ( )
445
+ adjustedPaddingHeight += wrapper .element .outerHeight ( true )
456
446
viewport .adjustScrollTop (adjustedPaddingHeight)
457
447
458
448
# re-index the buffer
@@ -543,7 +533,6 @@ angular.module('ui.scroll', [])
543
533
buffer .minIndex buffer .first
544
534
adjustBufferAfterFetch rid
545
535
546
-
547
536
# events and bindings
548
537
549
538
resizeAndScrollHandler = ->
0 commit comments