Vue.js允许在元素上应用事件:
<div id="app">
<button @click="play()">Play</button>
</div>
Run Code Online (Sandbox Code Playgroud)
但是如何在window对象上应用事件?它不在DOM中.
例如:
<div id="app">
<div @mousedown="startDrag()" @mousemove="move($event)">Drag me</div>
</div>
Run Code Online (Sandbox Code Playgroud)
在这个例子中,如何监听mousemove事件window?
我正在寻找解决方案并提出了这个代码
methods: {
handleScroll () {
console.log(window.scrollY)
}
},
created () {
window.addEventListener('scroll', this.handleScroll);
},
destroyed () {
window.removeEventListener('scroll', this.handleScroll);
}
Run Code Online (Sandbox Code Playgroud)
不幸的是,这对我不起作用.我也尝试将窗口更改为document.body.
错误消息是 Window is not defined
我使用vue3 beta 18,发现当我删除由v-for中的动态组件渲染的组件时,没有发出beforeDestroy。
两者都没有停用,销毁。
当我从集合“windows”中删除它时,该组件“消失了”。
<template>
component(v-for="ww in windows" :key="ww.$id" :is="ww.component" v-bind="ww.props")
</template>
Run Code Online (Sandbox Code Playgroud) 我需要对窗口(视口)滚动做出反应,以便能够检测元素何时可见.
最终目标是创建SIMILAR但不等于无限卷轴的东西.
我想学会自己做.不要链接我的插件请在构建其他插件之前了解Vue.js.
如何使用Vue.js检测页面(窗口或更好的视口)滚动和调整大小?
要么
我如何监督元素,div或span的垂直位置,以便在它接近可见时作出反应?
在我找到的文档中@scroll,但它对元素的滚动做出反应,而不是页面的滚动.