浏览代码

不要因为鼠标快速移动到“提交”而引起页面滚动

Michael Wang 3 年之前
父节点
当前提交
ded47fe731
共有 3 个文件被更改,包括 20 次插入4 次删除
  1. 0 2
      src/features/mark/MarkBoardMouse.vue
  2. 0 1
      src/features/mark/MarkBoardTrack.vue
  3. 20 1
      src/features/mark/use/focusTracks.ts

+ 0 - 2
src/features/mark/MarkBoardMouse.vue

@@ -127,10 +127,8 @@
 
 
 <script setup lang="ts">
 <script setup lang="ts">
 import type { Question } from "@/types";
 import type { Question } from "@/types";
-import { isNumber } from "lodash";
 import { store } from "@/store/store";
 import { store } from "@/store/store";
 import { keyMouse } from "./use/keyboardAndMouse";
 import { keyMouse } from "./use/keyboardAndMouse";
-import { message } from "ant-design-vue";
 import { DownOutlined } from "@ant-design/icons-vue";
 import { DownOutlined } from "@ant-design/icons-vue";
 
 
 const emit = defineEmits(["submit", "allZeroSubmit", "unselectiveSubmit"]);
 const emit = defineEmits(["submit", "allZeroSubmit", "unselectiveSubmit"]);

+ 0 - 1
src/features/mark/MarkBoardTrack.vue

@@ -182,7 +182,6 @@ import { isNumber } from "lodash";
 import { onMounted, onUnmounted } from "vue";
 import { onMounted, onUnmounted } from "vue";
 import { store } from "@/store/store";
 import { store } from "@/store/store";
 import { autoChooseFirstQuestion } from "./use/autoChooseFirstQuestion";
 import { autoChooseFirstQuestion } from "./use/autoChooseFirstQuestion";
-import { message } from "ant-design-vue";
 import { dragSplitPane } from "./use/splitPane";
 import { dragSplitPane } from "./use/splitPane";
 import { addFocusTrack, removeFocusTrack } from "./use/focusTracks";
 import { addFocusTrack, removeFocusTrack } from "./use/focusTracks";
 
 

+ 20 - 1
src/features/mark/use/focusTracks.ts

@@ -1,6 +1,23 @@
 import { store } from "@/store/store";
 import { store } from "@/store/store";
 
 
-export function addFocusTrack(
+let hovering = false;
+let timeoutId = -1;
+
+export async function addFocusTrack(
+  groupNumber: number | undefined,
+  mainNumber: number | undefined,
+  subNumber: string | undefined
+) {
+  hovering = true;
+
+  timeoutId = setTimeout(() => {
+    if (hovering) {
+      _addFocusTrack(groupNumber, mainNumber, subNumber);
+    }
+  }, 200);
+}
+
+function _addFocusTrack(
   groupNumber: number | undefined,
   groupNumber: number | undefined,
   mainNumber: number | undefined,
   mainNumber: number | undefined,
   subNumber: string | undefined
   subNumber: string | undefined
@@ -34,5 +51,7 @@ export function addFocusTrack(
 }
 }
 
 
 export function removeFocusTrack() {
 export function removeFocusTrack() {
+  hovering = false;
+  clearTimeout(timeoutId);
   store.focusTracks.splice(0);
   store.focusTracks.splice(0);
 }
 }