3

我正在迁移到 Polymer 1.0

这是我的模板:

<template>
    <div class="scroll">
        <div class="content">
            <content></content>
        </div>
        <div class="bar barY"></div>
    </div>
</template>

内容被主 html 文件中的文本填充。

我需要获取此 div 的滚动高度。我曾经做过:

height = $(this.shadowRoot).find('.content')[0].scrollHeight;

但这不再起作用了:

Uncaught TypeError: Cannot read property 'scrollHeight' of undefined

我尝试向 div 添加一个 id,然后像这样选择它:

height = this.$.content.scrollHeight;

但这给了我一个 0 的值,即使内容中有很多文本。

我正在从ready函数中调用此代码。

我是否正确选择了元素?

4

1 回答 1

7

<content>实际上并不包含组件的内容,而是为这些内容提供了一个插入点<content>,该插入点将是元素的兄弟。要获取为给定节点插入的元素,<content>可以使用以下命令:

var content = Polymer.dom(this.root).querySelector('content');
var distributed = Polymer.dom(content).getDistributedNodes()

可以在https://www.polymer-project.org/1.0/docs/devguide/local-dom.html#dom-api-examples找到上述文档以及更完整的示例。

于 2015-06-02T18:39:36.290 回答