UNPKG

vimo-dt

Version:

A Vue2.x UI Project For Mobile & HyBrid

81 lines (71 loc) 2.21 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateImgs = updateImgs; exports.sortTopToBottom = sortTopToBottom; function updateImgs(imgs, viewableTop, contentHeight, scrollDirectionY, requestableBuffer, renderableBuffer) { var viewableBottom = viewableTop + contentHeight; var priority1 = []; var priority2 = []; var img = void 0; for (var i = 0, ilen = imgs.length; i < ilen; i++) { img = imgs[i]; if (scrollDirectionY === 'up') { if (img.getTop() < viewableBottom && img.getBottom() > viewableTop - renderableBuffer) { img.canRequest = img.canRender = true; priority1.push(img); continue; } if (img.getBottom() <= viewableTop && img.getBottom() > viewableTop - requestableBuffer) { img.canRequest = true; img.canRender = false; priority2.push(img); continue; } if (img.getTop() >= viewableBottom && img.getTop() < viewableBottom + renderableBuffer) { img.canRequest = img.canRender = false; continue; } } else { if (img.getBottom() > viewableTop && img.getTop() < viewableBottom + renderableBuffer) { img.canRequest = img.canRender = true; priority1.push(img); continue; } if (img.getTop() >= viewableBottom && img.getTop() < viewableBottom + requestableBuffer) { img.canRequest = true; img.canRender = false; priority2.push(img); continue; } if (img.getBottom() <= viewableTop && img.getBottom() > viewableTop - renderableBuffer) { img.canRequest = img.canRender = false; continue; } } img.canRequest = img.canRender = false; img.reset(); } priority1.sort(sortTopToBottom).forEach(function (i) { return i.update(); }); if (scrollDirectionY === 'up') { priority2.sort(sortTopToBottom).reverse().forEach(function (i) { return i.update(); }); } else { priority2.sort(sortTopToBottom).forEach(function (i) { return i.update(); }); } } function sortTopToBottom(a, b) { if (a.top < b.top) { return -1; } if (a.top > b.top) { return 1; } return 0; }