mirror of
https://github.com/siyuan-note/siyuan.git
synced 2025-12-23 01:50:12 +01:00
This commit is contained in:
parent
b2e34c8872
commit
e29c3d5e26
1 changed files with 19 additions and 0 deletions
|
|
@ -5,8 +5,11 @@ import {isMobile} from "../util/functions";
|
||||||
|
|
||||||
export class Menu {
|
export class Menu {
|
||||||
public element: HTMLElement;
|
public element: HTMLElement;
|
||||||
|
private wheelEvent: string;
|
||||||
|
|
||||||
constructor() {
|
constructor() {
|
||||||
|
this.wheelEvent = "onwheel" in document.createElement("div") ? "wheel" : "mousewheel";
|
||||||
|
|
||||||
this.element = document.getElementById("commonMenu");
|
this.element = document.getElementById("commonMenu");
|
||||||
this.element.addEventListener(isMobile() ? getEventName() : "mouseover", (event) => {
|
this.element.addEventListener(isMobile() ? getEventName() : "mouseover", (event) => {
|
||||||
const target = event.target as Element;
|
const target = event.target as Element;
|
||||||
|
|
@ -53,7 +56,17 @@ export class Menu {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private preventDefault(event: KeyboardEvent) {
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
|
||||||
public remove() {
|
public remove() {
|
||||||
|
if (isMobile()) {
|
||||||
|
window.removeEventListener("touchmove", this.preventDefault, false);
|
||||||
|
} else {
|
||||||
|
window.removeEventListener(this.wheelEvent, this.preventDefault, false);
|
||||||
|
}
|
||||||
|
|
||||||
this.element.innerHTML = "";
|
this.element.innerHTML = "";
|
||||||
this.element.classList.add("fn__none");
|
this.element.classList.add("fn__none");
|
||||||
this.element.style.zIndex = "";
|
this.element.style.zIndex = "";
|
||||||
|
|
@ -67,6 +80,12 @@ export class Menu {
|
||||||
}
|
}
|
||||||
|
|
||||||
public popup(options: { x: number, y: number, h?: number }, isLeft = false) {
|
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");
|
this.element.classList.remove("fn__none");
|
||||||
setPosition(this.element, options.x - (isLeft ? window.siyuan.menus.menu.element.clientWidth : 0), options.y, options.h);
|
setPosition(this.element, options.x - (isLeft ? window.siyuan.menus.menu.element.clientWidth : 0), options.y, options.h);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue