vue+element 页面 滚动隐藏select下拉框

封装的滚动事件 

 // 滚轮事件的监听于移除并返回当前滚轮滚动方向,取消监听执行scrollFunc第二个参数

export function scrollEven (scrollFunc) {

  // 火狐浏览器

  // if (document.addEventListener) {

  let isRemove = false

  document.addEventListener('DOMMouseScroll', scroll, false)

  // }// W3C

  document.addEventListener('mousewheel', scroll, false)// IE/Opera/Chrome/Safari

  function scroll (e) {

    // direct 是 1 向上,是 -1 向下

    var direct = 0

    e = e || window.event

    if (e.wheelDelta) {//IE/Opera/Chrome

      direct = e.wheelDelta > 0 ? 1 : -1

    } else if (e.detail) {//Firefox

      direct = e.detail < 0 ? 1 : -1

    }

    if (isRemove) {

      document.removeEventListener('DOMMouseScroll', scroll, false)

      document.removeEventListener('mousewheel', scroll, false)// IE/Opera/Chrome/Safari

    }

    scrollFunc(direct, removeScroll, e)

  }

  function removeScroll () {

    isRemove = true

  }

}

 

调用 

<el-select ref="mySelect" ></el-select>

 

import { scrollEven } from '@/utils/event.js'

 mounted () {

      // 监听滚动

      scrollEven((direct, removeScroll, event) => {

        this.removeHandleScroll = removeScroll

        this.handleScroll(direct, event)

      })

    },

    destroyed () {

      // 监听滚动

      this.removeHandleScroll()

    },

    methods: {

      // 滚动时关闭下拉框

      removeHandleScroll () { },

      handleScroll (direct, event) {

        if (!event.target.className.includes('el-select-dropdown__item')) {

          this.$refs.mySelect.blur()

        }

      },

   }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值