ElementUI 2.x 自定义指令:鼠标滚轮

1 篇文章 0 订阅

src/directives/mousewheel.js文件声明了鼠标滚轮自定义指令。

在模版中通过v-mousewheel=“handleMousewheel”,可以绑定发生鼠标滚轮事件时的回调函数。

一 代码

// 依赖第三方库
import normalizeWheel from 'normalize-wheel';

// 是否是Firefox浏览器
const isFirefox = typeof navigator !== 'undefined' && navigator.userAgent.toLowerCase().indexOf('firefox') > -1;

/**
 * 给元素绑定鼠标滚轮事件
 */
const mousewheel = function(element, callback) {
  if (element && element.addEventListener) {
    // 兼容处理:Firefox使用DOMMouseScroll事件,其它使用mousewheel事件
    element.addEventListener(isFirefox ? 'DOMMouseScroll' : 'mousewheel', function(event) {
      // 标准化鼠标滚轮事件对象。例如, {spinX: -0, spinY: -1, pixelX: -0, pixelY: -4.000244140625}
      const normalized = normalizeWheel(event);
      // 执行回调函数
      callback && callback.apply(this, [event, normalized]);
    });
  }
};

// 鼠标滚轮自定义指令
export default {
  // 指令第一次绑定到元素时调用:只调用一次
  bind(el, binding) {
    mousewheel(el, binding.value);
  }
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值