【发布时间】:2019-08-18 20:41:55
【问题描述】:
我有一个非常简单的应用程序,它有 2 个组件:App.vue 和另一个组件 Home.vue,我在其中保存了应用程序的其余结构:一个粘性标题和一些带有要滚动到的锚点的部分。
我想为粘性标题应用一个类,以在页面滚动时最小化徽标。所以我想我会留意window.scrollY 的任何变化。因此,如果scrollY 大于 0,则应用一些最小化徽标的类。
我试图在我的组件中监听滚动事件,但这并没有走得太远。在这里的这个讨论中,提供了一个非常好的解决方案,但是我不知道在哪里放置滚动事件。 https://github.com/vuejs/Discussion/issues/324
所以,我认为最合适的解决方案是创建一个数据属性,为其分配window.scrollY 图形,然后观察其值的变化。不幸的是,观察者永远不会被触发。所以现在我被困住了。代码是:
data () {
return {
...
windowTop: window.top.scrollY
}
}
...
watch: {
windowTop: {
immediate: true,
handler (newVal, oldVal) {
console.log(newVal, oldVal);
},
}
}
关于我可能做错了什么的任何想法?
【问题讨论】:
标签: javascript vue.js vuejs2