如何改变一个属性的聚合物元素与jquery?(修复加载时应用程序抽屉故障)
How to change a property of a polymer element with jquery? (to fix app-drawer glitch on load)
我的代码中有一个应用程序抽屉:
<app-drawer-layout fullbleed force-narrow>
<app-drawer swipe-open opened="{{drawerOpened}}">
...
</app-drawer>
和抽屉总是故障(打开和关闭)大约0.2秒,而网站正在加载其外壳(应用程序工具栏,应用程序抽屉等)。我可以在edge和firefox浏览器(有时)看到这些小故障。
所以我决定通过添加visibility:hidden
:
<app-drawer swipe-open opened="{{drawerOpened}}" style="visibility:hidden;">
...
</app-drawer>
和make在加载页面的shell后2秒内再次可见(-ish):
setTimeout(function(){
$(document).ready(function() {
$("app-drawer").css( "visibility", "visible;" );
});
},2000);
但是这个jquery代码并没有使它可见。
在搜索互联网时,我发现我需要使用Polymer.dom(this.root).querySelector
而不是使用$("app-drawer")
,但我不知道如何在此代码中实现它,因为我是初学者。任何帮助吗?
取决于应用程序抽屉在哪里定义。
如果它直接在<,你可以使用jquery访问它(通过ID,类,标签名w/e)。
<script>
window.addEventListener('WebComponentsReady', function(e) {
// imports are loaded and elements have been registered
$("app-drawer").css( "visibility", "visible;" );
});
</script>
如果你的应用程序抽屉在一个自定义元素中,你需要传递阴影根(因为jQuery不会通过选择器查看阴影根)。
您可以通过使用聚合物dom函数传递阴影根并到达元素。只需获取对定义应用程序抽屉的元素的引用看一下$变量
document.querySelector("#YOUR-ELE-AROUND-APP-DRAWER").$.appDrawerID.style.visibility = "visible";
https://www.polymer-project.org/1.0/docs/devguide/local-dom node-finding
第三个解决方案是直接在app-drawer所在的自定义元素中使用jquery并访问它。
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方法
示例:https://jsfiddle.net/PatrickJaja/55cbdft5/
相关文章:
- Ajax请求文档就绪会导致jquery加载缓慢
- jQuery加载的async和ready函数不工作
- jQuery加载完成事件不起作用
- jQuery加载方法字符集
- 使用jQuery加载页面上的配色方案
- 向使用jQuery加载DOM后添加的字段添加不受限制的文本输入DatePickers
- 我的jQuery加载请求是否被调用了两次
- jquery加载后会触发任何事件吗
- Jquery加载页面时的颜色更改效果
- 在AJAX jQuery加载()之后运行jQuery代码
- 使用jQuery加载页面时自动向上滚动
- 使用 jQuery 加载一系列图像
- 在 Wordpress 中调试 jquery 加载问题
- 使用 jQuery 加载 JSON,然后将其显示给查看器
- Jquery 加载的图像对类没有反应
- jquery加载时间和里面的css样式
- Rails:使用jQuery加载分部
- jQuery加载函数后,jQuery UI自动完成功能不起作用
- jQuery加载窗口,同时等待长函数完成
- "数据表”;jquery加载后CSS样式消失