Vue3 scroll 事件(一般只有事件对象)有两个参数?

发布于 2022-09-12 22:40:57 字数 1217 浏览 15 评论 0

<div class="e" @scroll.prevent="scroll" >
<!-- 因为 scroll 事件会冒泡所以绑定在父元素 -->
  <img src="G:\\1.png"/>
  <img src="G:\\1.png"/>
  <img src="G:\\1.png"/>
  <img src="G:\\1.png"/>
  <img src="G:\\1.png"/>

</div>
<script lang="ts">
import {defineComponent} from "vue";
export default defineComponent({
 setup() {
// 防抖
function debounce(fn:Function,wait:number) {
  let timeoutID:any = null
  let flag = true
  return function (e:any) {
      if (timeoutID != null&&flag) clearTimeout(timeoutID) 
      timeoutID = setTimeout(fn,wait,e,flag)
  }
}
        function scrollhandl(e:UIEvent,...flag:any[]){
          let target = e.target as HTMLElement
 // [Property 'scrollTop' does not exist on type 'EventTarget'.](https://gitter.im/Microsoft/TypeScript/archives/2016/01/23)
          console.log(target.scrollTop);
          console.log(flag);
        }
        const scroll = debounce(scrollhandl,1000)
        return {scroll}
        }
     })
<script/>

类型
image.png

在运行后
image.png

这个 flag 是什么

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绝情姑娘 2022-09-19 22:40:57

function scrollhandle(e, ...flag)中的剩余参数组成的数组
比如这样调用, flag的值就是一个数组:[1,2,3]

scrollhandle('张三', 1,2,3)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文