mirror of
https://github.com/idrawjs/idraw
synced 2026-05-24 10:08:34 +00:00
feat: implement event mouseOver and mouseLeave for Element
This commit is contained in:
parent
50d464b320
commit
9aca4a03cd
3 changed files with 21 additions and 7 deletions
|
|
@ -46,9 +46,13 @@ core.on('changeScreen', (data) => {
|
|||
core.on('screenSelectElement', (data) => {
|
||||
console.log('screenSelectElement: ', data);
|
||||
});
|
||||
// core.on('screenHoverElement', (data) => {
|
||||
// console.log('screenHoverElement: ', data);
|
||||
// });
|
||||
core.on('mouseOverElement', (data) => {
|
||||
console.log('mouseOverElement: ', data);
|
||||
});
|
||||
core.on('mouseLeaveElement', (data) => {
|
||||
console.log('mouseLeaveElement: ', data);
|
||||
});
|
||||
|
||||
core.on('screenMoveElementStart', (data) => {
|
||||
console.log('screenMoveElementStart: ', data);
|
||||
});
|
||||
|
|
|
|||
|
|
@ -379,6 +379,8 @@ class Core {
|
|||
}
|
||||
|
||||
private [_handleHover](point: TypePoint): void {
|
||||
let isMouseOverElement: boolean = false;
|
||||
|
||||
if (this[_mode] === Mode.SELECT_AREA) {
|
||||
this[_board].resetCursor();
|
||||
} else if (this[_cursorStatus] === CursorStatus.NULL) {
|
||||
|
|
@ -389,11 +391,19 @@ class Core {
|
|||
if (index !== null && index >= 0) {
|
||||
const elem = this[_data].elements[index];
|
||||
if (elem) {
|
||||
this[_coreEvent].trigger('mouseOverElement', { index, uuid: elem.uuid, element: elem, })
|
||||
this[_coreEvent].trigger('mouseOverElement', { index, uuid: elem.uuid, element: elem, });
|
||||
this[_tempData].set('hoverUUID', elem.uuid);
|
||||
isMouseOverElement = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (isMouseOverElement !== true && this[_tempData].get('hoverUUID') !== null) {
|
||||
const uuid = this[_tempData].get('hoverUUID');
|
||||
const index: number | null = this[_helper].getElementIndexByUUID(uuid || '');
|
||||
this[_coreEvent].trigger('mouseLeaveElement', { uuid, index })
|
||||
this[_tempData].set('hoverUUID', null);
|
||||
}
|
||||
}
|
||||
|
||||
private [_dragElements](uuids: string[], point: TypePoint, prevPoint: TypePoint|null): void {
|
||||
|
|
|
|||
|
|
@ -7,14 +7,14 @@ import {
|
|||
} from '@idraw/types';
|
||||
|
||||
export type TypeCoreEventSelectBaseArg = {
|
||||
index: number;
|
||||
uuid: string;
|
||||
index: number | null;
|
||||
uuid: string | null;
|
||||
}
|
||||
|
||||
export type TypeCoreEventArgMap = {
|
||||
'error': any;
|
||||
'mouseOverElement': TypeCoreEventSelectBaseArg & { element: TypeElement<keyof TypeElemDesc> }
|
||||
'mouseLeaveElement': void;
|
||||
'mouseLeaveElement': TypeCoreEventSelectBaseArg;
|
||||
'screenSelectElement': TypeCoreEventSelectBaseArg & { element: TypeElement<keyof TypeElemDesc> }
|
||||
'screenMoveElementStart': TypeCoreEventSelectBaseArg & TypePoint,
|
||||
'screenMoveElementEnd': TypeCoreEventSelectBaseArg & TypePoint,
|
||||
|
|
|
|||
Loading…
Reference in a new issue