element-plus/packages/directives/mousewheel/index.ts
justwiner 2985a71751
feat(table): table (#407)
Co-authored-by: winerlu <winerlu@tencent.com>
Co-authored-by: zazzaz <izazzaz@hotmail.com>
2020-10-20 10:31:47 +08:00

29 lines
715 B
TypeScript

import normalizeWheel from 'normalize-wheel'
import type { ObjectDirective } from 'vue'
const isFirefox =
typeof navigator !== 'undefined' &&
navigator.userAgent.toLowerCase().indexOf('firefox') > -1
const mousewheel = function (element, callback) {
if (element && element.addEventListener) {
const fn = function (event) {
const normalized = normalizeWheel(event)
callback && callback.apply(this, [event, normalized])
}
if (isFirefox) {
element.addEventListener('DOMMouseScroll', fn)
} else {
element.onmousewheel = fn
}
}
}
const Mousewheel: ObjectDirective = {
beforeMount(el, binding) {
mousewheel(el, binding.value)
},
}
export default Mousewheel