Преглед изворни кода

:art: fix https://github.com/siyuan-note/siyuan/issues/11077

Vanessa пре 1 година
родитељ
комит
a53079d2b5
3 измењених фајлова са 14 додато и 1 уклоњено
  1. 4 0
      app/src/mobile/editor.ts
  2. 1 0
      app/src/mobile/menu/model.ts
  3. 9 1
      app/src/mobile/util/touch.ts

+ 4 - 0
app/src/mobile/editor.ts

@@ -22,6 +22,10 @@ export const getCurrentEditor = () => {
 export const openMobileFileById = (app: App, id: string, action = [Constants.CB_GET_HL]) => {
     window.siyuan.storage[Constants.LOCAL_DOCINFO] = {id};
     setStorageVal(Constants.LOCAL_DOCINFO, window.siyuan.storage[Constants.LOCAL_DOCINFO]);
+    const avPanelElement = document.querySelector(".av__panel");
+    if (avPanelElement && !avPanelElement.classList.contains("fn__none")) {
+        avPanelElement.dispatchEvent(new CustomEvent("click", {detail: "close"}));
+    }
     if (window.siyuan.mobile.editor) {
         saveScroll(window.siyuan.mobile.editor.protyle);
         hideElements(["toolbar", "hint", "util"], window.siyuan.mobile.editor.protyle);

+ 1 - 0
app/src/mobile/menu/model.ts

@@ -6,6 +6,7 @@ export const openModel = (obj: {
 }) => {
     const modelElement = document.getElementById("model");
     modelElement.style.transform = "translateY(0px)";
+    modelElement.style.zIndex = (++window.siyuan.zIndex).toString();
     modelElement.querySelector(".toolbar__icon use").setAttribute("xlink:href", "#" + obj.icon);
     modelElement.querySelector(".toolbar__text").innerHTML = obj.title;
     const modelMainElement = modelElement.querySelector("#modelMain") as HTMLElement;

+ 9 - 1
app/src/mobile/util/touch.ts

@@ -15,6 +15,7 @@ let firstDirection: "toLeft" | "toRight";
 let firstXY: "x" | "y";
 let lastClientX: number;    // 和起始方向不一致时,记录最后一次的 clientX
 let scrollBlock: boolean;
+let isFirstMove = true;
 
 const popSide = (render = true) => {
     if (render) {
@@ -32,6 +33,7 @@ export const handleTouchEnd = (event: TouchEvent, app: App) => {
         event.preventDefault();
         return;
     }
+    isFirstMove = true;
     const target = event.target as HTMLElement;
     if (!clientY || typeof yDiff === "undefined" ||
         target.tagName === "AUDIO" ||
@@ -153,6 +155,7 @@ export const handleTouchStart = (event: TouchEvent) => {
         time = 0;
         event.stopImmediatePropagation();
     }
+    isFirstMove = true;
     scrollBlock = false;
 };
 
@@ -251,7 +254,12 @@ export const handleTouchMove = (event: TouchEvent) => {
                 return;
             }
         }
-
+        if (isFirstMove) {
+            sideMaskElement.style.zIndex = (++window.siyuan.zIndex).toString();
+            document.getElementById("sidebar").style.zIndex = (++window.siyuan.zIndex).toString();
+            document.getElementById("menu").style.zIndex = (++window.siyuan.zIndex).toString();
+            isFirstMove = false;
+        }
         const windowWidth = window.innerWidth;
         const menuElement = hasClosestByAttribute(target, "id", "menu");
         if (menuElement) {