如何将 Polymer 入门套件的 <iron-scroll-threshold> 滚动目标设置为 "document"

How to set <iron-scroll-threshold> scroll-target to "document" for Polymer Starter Kit

我打算通过将 scroll-target 设置为 "document" 来实现与 PSK v3 一起使用的无限滚动条,但它对 PSK 不起作用。下面是代码片段:

<iron-scroll-threshold id="threshold"
    scroll-target="document"
    on-lower-threshold="queryMoreData">
  <iron-list items="[[items]]" grid>
    <template>
      <div>
        <div class="content">
          item: [[item.n]]
        </div>
      </div>
    </template>
  </iron-list>
</iron-scroll-threshold>

我已经用普通 HTML 测试了 scroll-target="document",它运行良好。我想知道当用户滚动到特定 page/view.

末尾时应该如何设置 PSK 触发事件

有时,您的滚动位置在开始时比 queryMoreData 函数触发的位置足够低。在此函数中,您需要通过将 clearTriggers 方法调用到 queryMoreData 函数中来清除阈值:

queryMoreData() {
    //check if you have more data to load than

    ironScrollTheshold.clearTriggers();
}

之后,假设可滚动区域中的内容已经增长,它将再次开始侦听滚动位置是否再次达到阈值。

显然,您需要在ready()中使用以下代码将<iron-scroll-threshold>scroll-target设置为<app-header>scroll-target:-

ready() {
  { // Set scroll target for <iron-scroll-threshold>
    let myApp = document.querySelector('my-app');
    let appHeader = myApp.shadowRoot.querySelector('app-header');

    this.$.threshold.scrollTarget = appHeader.scrollTarget;
  }
}

您必须将 iron-scroll-threshold 元素的 scroll-target 属性设置为“document”。

另请注意 iron-listscroll-target 属性设置为 iron-scroll-threshold 元素的 id - 'threshold '.

<iron-scroll-threshold scroll-target="document" id="threshold" on-lower-threshold="loadMoreData" lower-threshold="100">
<iron-list id="list" items="[[items]]" as="item" scroll-target="threshold" grid>
<!-- template -->
</iron-list>
</iron-scroll-threshold>