Skip to content

Commit b07cee5

Browse files
committed
clipTop/clipBottom refactoring
1 parent 7c98949 commit b07cee5

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

src/ui-scroll.js

+11-5
Original file line numberDiff line numberDiff line change
@@ -202,8 +202,6 @@ angular.module('ui.scroll', [])
202202
'display': 'block'
203203
});
204204

205-
let viewportOffset = viewport.offset() ? () => viewport.offset() : () => ({top: 0});
206-
207205
function Cache() {
208206
const cache = Object.create(Array.prototype);
209207

@@ -295,12 +293,17 @@ angular.module('ui.scroll', [])
295293
clipBottom() {
296294
// clip the invisible items off the bottom
297295
let overage = 0;
296+
let overageHeight = 0;
297+
let itemHeight = 0;
298+
let emptySpaceHeight = viewport.bottomDataPos() - viewport.bottomVisiblePos() - bufferPadding();
298299

299300
for (let i = buffer.length - 1; i >= 0; i--) {
300-
if (buffer[i].element.offset().top - viewportOffset().top <= viewport.outerHeight() + bufferPadding()) {
301+
itemHeight = buffer[i].element.outerHeight(true);
302+
if(overageHeight + itemHeight > emptySpaceHeight) {
301303
break;
302304
}
303305
bottomPadding.cache.add(buffer[i]);
306+
overageHeight += itemHeight;
304307
overage++;
305308
}
306309

@@ -320,13 +323,16 @@ angular.module('ui.scroll', [])
320323
// clip the invisible items off the top
321324
let overage = 0;
322325
let overageHeight = 0;
326+
let itemHeight = 0;
327+
let emptySpaceHeight = viewport.topVisiblePos() - viewport.topDataPos() - bufferPadding();
323328

324329
for (let i = 0; i < buffer.length; i++) {
325-
if (buffer[i].element.offset().top - viewportOffset().top + buffer[i].element.outerHeight(true) >= (-1) * bufferPadding()) {
330+
itemHeight = buffer[i].element.outerHeight(true);
331+
if(overageHeight + itemHeight > emptySpaceHeight) {
326332
break;
327333
}
328334
topPadding.cache.add(buffer[i]);
329-
overageHeight += buffer[i].element.outerHeight(true);
335+
overageHeight += itemHeight;
330336
overage++;
331337
}
332338

0 commit comments

Comments
 (0)