This commit is contained in:
Vanessa 2022-08-03 09:36:45 +08:00
parent b2e34c8872
commit e29c3d5e26

View file

@ -5,8 +5,11 @@ import {isMobile} from "../util/functions";
export class Menu {
public element: HTMLElement;
private wheelEvent: string;
constructor() {
this.wheelEvent = "onwheel" in document.createElement("div") ? "wheel" : "mousewheel";
this.element = document.getElementById("commonMenu");
this.element.addEventListener(isMobile() ? getEventName() : "mouseover", (event) => {
const target = event.target as Element;
@ -53,7 +56,17 @@ export class Menu {
});
}
private preventDefault(event: KeyboardEvent) {
event.preventDefault();
}
public remove() {
if (isMobile()) {
window.removeEventListener("touchmove", this.preventDefault, false);
} else {
window.removeEventListener(this.wheelEvent, this.preventDefault, false);
}
this.element.innerHTML = "";
this.element.classList.add("fn__none");
this.element.style.zIndex = "";
@ -67,6 +80,12 @@ export class Menu {
}
public popup(options: { x: number, y: number, h?: number }, isLeft = false) {
if (isMobile()) {
window.addEventListener("touchmove", this.preventDefault, {passive: false});
} else {
window.addEventListener(this.wheelEvent, this.preventDefault, {passive: false});
}
this.element.classList.remove("fn__none");
setPosition(this.element, options.x - (isLeft ? window.siyuan.menus.menu.element.clientWidth : 0), options.y, options.h);
}