示例#1
0
 onScroll(evt) {
   var scrollTop = 0;
   if (evt != null) {
     var scrollDiv = evt.target;
     if (this.paddingDiv == null) {
       this.paddingDiv = scrollDiv.querySelector('#padding');
     }
     if (this.innerDiv == null) {
       this.innerDiv = scrollDiv.querySelector('#inner');
       this.innerDiv.style.setProperty('width', `${ROW_WIDTH}px`);
     }
     scrollTop = scrollDiv.scrollTop;
   }
   var iStart = Math.floor(scrollTop / ITEM_HEIGHT);
   var iEnd = Math.min(iStart + VISIBLE_ITEMS + 1, this._fullList.length);
   var padding = iStart * ITEM_HEIGHT;
   if (this.innerDiv != null) {
     this.innerDiv.style.setProperty('height', `${HEIGHT - padding}px`);
   }
   if (this.paddingDiv != null) {
     this.paddingDiv.style.setProperty('height', `${padding}px`);
   }
   this.visibleItems = ListWrapper.slice(this._fullList, iStart, iEnd);
 }