【发布时间】:2014-07-30 14:03:39
【问题描述】:
我对聚合物中的自定义元素有疑问。
我有一个自定义元素,它的模板内嵌套了一个样式,对于模板内的 div,如下所示:
<template>
<style>
#navWrapper{
height: auto;;
color:red;
position:fixed;
background-color:black;
width: 100%;
}
</style>
<div id="navWrapper"><content></content></div>
</template>
现在,我想在向下滚动页面时更改 navWrapper 的颜色。 我想为此使用jquery。 因此,我的自定义元素中有一个脚本,如下所示:
<script>
Polymer('responsive-nav',{ready: function() {
$(window).scroll (function () {
var sT = $(this).scrollTop();
if (sT >= 100) {
$(this.$.navWrapper).css({backgroundColor : 'rgba(0,0,0,0.0)' })
}else {
...
}
})
} });
</script>
现在可悲的是,这无济于事。我在 $(this.$.navWrapper) 之前放置了一个 alert(test) 来确定我是否达到了这一点并且我做到了。此外,当我想更改位于我的普通 HTML 文件中的元素的背景颜色或其他内容时,它可以工作。例如 $("#testDiv").css({...}) 更改。所以我的问题是:如何正确访问元素的 css?
【问题讨论】:
-
我不知道 Polymer,但
$(this.$.navWrapper).css...是标准结构吗?在直接的 jQuery 中,它将是$('#navWrapper').css... -
是的,这在 Polymer 中是可以接受的,Polymer 在现代浏览器中使用新的光/影 dom 设施。 'this.$.xxxxx' 是在 polymer.js 中定义的,以使导航 shadow dom 比使用 native 更容易。
标签: javascript jquery css polymer