Загрузка железного списка полимеров по частям, когда полоса прокрутки находится вне shadow-dom
Мое Polymer-приложение использует app-layout-структуру. Корневой элемент может быть упрощен следующим образом:
<app-drawer-layout fullbleed>
<app-drawer swipe-open>
<iron-selector selected="{{page}}" attr-for-selected="name" role="navigation">
<!-- list of Side Menu options -->
</iron-selector>
</app-drawer>
<app-header-layout has-scrolling-region>
<app-header fixed effects="waterfall">
<!-- Top Menu -->
</app-header>
<iron-pages role="main" selected="[[page]]" attr-for-selected="name">
<!-- Here is custom elements that can be selected via Menu -->
</iron-pages>
</app-header-layout>
</app-drawer-layout>
При нажатии на опцию meny эта страница отображается. На одной странице перечислено много элементов, которые я хочу добавить в <железный список>.
У меня возникают проблемы с изменением размера при прокрутке, поскольку полоса прокрутки находится в родительском элементе родительского элемента.
ready: function(){
//this is the app-header-layout element from the root
this.$.ironList.scrollTarget = this.parentNode.parentNode;
},
Я застрял в списке, показывающем количество попаданий со смещением прокрутки, и больше никогда не загружаюсь. Свойства firstVisibleIndex (0) и lastVisibleIndex (8, количество отображаемых элементов, меньше, чем scroll-offset) остаются неизменными. Когда я устанавливаю iron-list.scrollTarget (iron-pages, app-header-layout не работает) и запускаю iron-resize, отображаются все остальные элементы, lastVisibleIndex - последний индекс.
1 ответ
Я думаю, что вам нужно получить право scrollTarget
потому что ваш подход не работает правильно. Вам нужно найти app-header
элемент и получить свой собственный scrollTarget
:
ready: function(){
//get parent node and query app-header
this.$.ironList.scrollTarget = this.domHost.$$('app-header').scrollTarget;
}