我目前正在使用聚合物的芯支架&co。创建带有内容区域的标题/边栏。我目前遇到的问题是我无法访问内容元素的某些属性,例如scrollTop。(因为我需要访问的实际scrollTop属性是在影子DOM中定义的。)
这与我正在使用的lazyload jquery插件冲突。该插件正在检查window.scrollTop,但是更改插件以检查我的内容的scrollTop(滚动而不是窗口)不会有任何影响,因为scrollTop在影子DOM中“隐藏”了。
有没有办法访问影子DOM元素?我唯一能找到的就是访问您用createShadowroot(或任何被称为)创建的影子DOM对象,但是我似乎找不到任何有关如何访问已存在/创建的影子根的参考。
下面的示例代码
<core-scaffold>
<core-header-panel navigation flex mode="seamed">
<core-toolbar>
<!--fixed toolbar-->
</core-toolbar>
<core-menu theme="core-light-theme">
<core-item icon="settings" label="item1"></core-item>
<core-item icon="settings" label="item2"></core-item>
</core-menu>
</core-header-panel>
<div tool>
<!--fixed header-->
</div>
<div id="content">
<!-- get scrollTop of content? -->
</div>
</core-scaffold>
每个具有ShadowDOM的元素还具有一个shadowRoot
描述基础元素的属性(作为document
)。
例如, some_element.shadowRoot.firstElementChild
您还可以querySelector
用来访问卷影根,例如:
document.querySelector('core-scaffold::shadow .someclass')
会在firstsomeclass
的影子根中找到第一个元素core-scaffold
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句