|
|
@@ -9,21 +9,10 @@
|
|
|
</div>
|
|
|
|
|
|
<!-- 滚动容器 -->
|
|
|
- <ElScrollbar
|
|
|
- ref="scrollbarRef"
|
|
|
- wrap-class="scrollbar-wrapper"
|
|
|
- :horizontal="true"
|
|
|
- @scroll="handleScroll"
|
|
|
- @wheel="handleWheel"
|
|
|
- >
|
|
|
+ <ElScrollbar ref="scrollbarRef" wrap-class="scrollbar-wrapper" :horizontal="true" @scroll="handleScroll" @wheel="handleWheel">
|
|
|
<div class="scroll-bar">
|
|
|
<template v-for="item in processedMenuList" :key="item.meta.title">
|
|
|
- <div
|
|
|
- v-if="!item.meta.isHide"
|
|
|
- class="item"
|
|
|
- :class="{ active: item.isActive }"
|
|
|
- @click="handleMenuJump(item, true)"
|
|
|
- >
|
|
|
+ <div v-if="!item.meta.isHide" class="item" :class="{ active: item.isActive }" @click="handleMenuJump(item, true)">
|
|
|
<i class="iconfont-sys" v-html="item.meta.icon" />
|
|
|
<span>{{ item.formattedTitle }}</span>
|
|
|
<div v-if="item.meta.showBadge" class="art-badge art-badge-mixed" />
|
|
|
@@ -159,10 +148,7 @@
|
|
|
if (!scrollbarRef.value?.wrapRef) return
|
|
|
|
|
|
const currentScroll = scrollbarRef.value.wrapRef.scrollLeft
|
|
|
- const targetScroll =
|
|
|
- direction === 'left'
|
|
|
- ? currentScroll - SCROLL_CONFIG.BUTTON_SCROLL_DISTANCE
|
|
|
- : currentScroll + SCROLL_CONFIG.BUTTON_SCROLL_DISTANCE
|
|
|
+ const targetScroll = direction === 'left' ? currentScroll - SCROLL_CONFIG.BUTTON_SCROLL_DISTANCE : currentScroll + SCROLL_CONFIG.BUTTON_SCROLL_DISTANCE
|
|
|
|
|
|
// 平滑滚动到目标位置
|
|
|
scrollbarRef.value.wrapRef.scrollTo({
|
|
|
@@ -188,10 +174,7 @@
|
|
|
const { scrollLeft, scrollWidth, clientWidth } = wrapRef
|
|
|
|
|
|
// 使用更小的滚动步长,让滚动更平滑
|
|
|
- const scrollStep =
|
|
|
- Math.abs(event.deltaY) > SCROLL_CONFIG.WHEEL_FAST_THRESHOLD
|
|
|
- ? SCROLL_CONFIG.WHEEL_FAST_STEP
|
|
|
- : SCROLL_CONFIG.WHEEL_SLOW_STEP
|
|
|
+ const scrollStep = Math.abs(event.deltaY) > SCROLL_CONFIG.WHEEL_FAST_THRESHOLD ? SCROLL_CONFIG.WHEEL_FAST_STEP : SCROLL_CONFIG.WHEEL_SLOW_STEP
|
|
|
const scrollDelta = event.deltaY > 0 ? scrollStep : -scrollStep
|
|
|
const targetScroll = Math.max(0, Math.min(scrollLeft + scrollDelta, scrollWidth - clientWidth))
|
|
|
|