我的代码中有一个app-drawer:
<app-drawer-layout fullbleed force-narrow>
<app-drawer swipe-open opened="{{drawerOpened}}">
...
</app-drawer>
当网站加载其外壳(app-toolbar,app-drawer等)时,抽屉总是出现故障(打开和关闭)0.2秒。我可以在边缘和firefox(有时)浏览器中看到这些故障。
所以我决定通过添加visibility:hidden
来修复它:
<app-drawer swipe-open opened="{{drawerOpened}}" style="visibility:hidden;">
...
</app-drawer>
并且在加载页面的shell后2秒内再次显示make(-ish):
setTimeout(function(){
$(document).ready(function() {
$("app-drawer").css( "visibility", "visible;" );
});
},2000);
但是这个jquery代码并没有让它可见。
在互联网上搜索时,我发现我需要使用Polymer.dom(this.root).querySelector
而不是$("app-drawer")
,但我不知道如何在此代码中实现它,因为我是初学者。有什么帮助吗?
答案 0 :(得分:1)
取决于您定义app-drawer的位置。
如果它直接位于您的第一级&lt; body&gt;,您可以使用jquery访问它(通过ID,类,标记名w / e)。
<script>
window.addEventListener('WebComponentsReady', function(e) {
// imports are loaded and elements have been registered
$("app-drawer").css( "visibility", "visible;" );
});
</script>
如果您的app-drawer在自定义元素中,则需要传递阴影根(因为jQuery不会通过选择器查看阴影根)。
您可以使用聚合物dom函数传递阴影根并到达元素。只需获得定义app-drawer的元素的引用 并查看$ variable。
document.querySelector("#YOUR-ELE-AROUND-APP-DRAWER").$.appDrawerID.style.visibility = "visible";
https://www.polymer-project.org/1.0/docs/devguide/local-dom#node-finding
第三种解决方案可以直接在自定义元素中使用jquery,其中定义了app-drawer并访问它。
ready: function() {
// access a local DOM element by ID using this.$
$("app-drawer").css( "visibility", "visible;" );
}
https://www.polymer-project.org/1.0/docs/devguide/registering-elements#ready-method