jjb-lc-designable
Version:
基于alibaba-designable源码二次封装的表单设计器。
35 lines (31 loc) • 807 B
text/typescript
import { EventDriver } from 'jjb-lc-designable/shared'
import { Engine } from '../models/Engine'
import { MouseMoveEvent } from '../events'
export class MouseMoveDriver extends EventDriver<Engine> {
request = null
onMouseMove = (e: MouseEvent) => {
this.request = requestAnimationFrame(() => {
cancelAnimationFrame(this.request)
this.dispatch(
new MouseMoveEvent({
clientX: e.clientX,
clientY: e.clientY,
pageX: e.pageX,
pageY: e.pageY,
target: e.target,
view: e.view,
})
)
})
}
attach() {
this.addEventListener('mousemove', this.onMouseMove, {
mode: 'onlyOne',
})
}
detach() {
this.removeEventListener('mouseover', this.onMouseMove, {
mode: 'onlyOne',
})
}
}