Vue中无效的`scroll`事件handle
最近在实现文章列表懒加载的时候,遇到了监听组件内的scroll
事件失效的情况。这个时候就有点诡异。其实问题在于scroll
事件到底发生在什么地方。
按照scroll
事件的说法,该事件会被具备滑条的元素在滑动时触发。那么真的是我们绑定元素触发了scroll
事件吗?
有的时候不是这样的。比如说在父组件在子组件的外边包了一层,比如说div
。
1 | // Parent.vue |
此时如果滑动滑条的的话。不一定是Child.vue
中的div
的触发scroll
,而是Parent.vue
中的div
触发滑条事件。由于外层的div
会被child
撑开而形成滑条。而触发scroll
事件。此时,由于事件冒泡的机制,内部元素无法捕捉到事件。这种调试可以使用Chrome的performance调试工具查看scroll
事件的root元素。