style: 调整slider容器的tooltip
This commit is contained in:
parent
498e165713
commit
21adafc3be
@ -67,8 +67,12 @@
|
||||
|
||||
<div class="speed-container">
|
||||
<div class="label">速度:</div>
|
||||
<el-slider v-model="jointSpeed" :min="0.1" :step="0.1" :max="3" />
|
||||
<div class="proportion">{{ (jointSpeed / 3 * 100).toFixed(0) }} %</div>
|
||||
<div class="speed-slider" @mouseenter="hoveredSlider = 'joint'" @mouseleave="hoveredSlider = null">
|
||||
<el-slider v-model="jointSpeed" :min="0.01" :step="0.01" :max="1" :show-tooltip="false" />
|
||||
<span v-show="hoveredSlider === 'joint'" class="speed-tooltip"
|
||||
:style="getTooltipPosition(jointSpeed)">{{ formatSpeedTooltip(jointSpeed) }}</span>
|
||||
</div>
|
||||
<div class="proportion">{{ (jointSpeed / 1 * 100).toFixed(0) }} %</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -156,8 +160,12 @@
|
||||
</div>
|
||||
<div class="speed-container">
|
||||
<div class="label">速度:</div>
|
||||
<el-slider v-model="endSpeed" :min="0.1" :step="0.1" :max="2" />
|
||||
<div class="proportion">{{ (endSpeed / 2 * 100).toFixed(0) }} %</div>
|
||||
<div class="speed-slider" @mouseenter="hoveredSlider = 'end'" @mouseleave="hoveredSlider = null">
|
||||
<el-slider v-model="endSpeed" :min="0.01" :step="0.01" :max="1" :show-tooltip="false" />
|
||||
<span v-show="hoveredSlider === 'end'" class="speed-tooltip"
|
||||
:style="getTooltipPosition(endSpeed)">{{ formatSpeedTooltip(endSpeed) }}</span>
|
||||
</div>
|
||||
<div class="proportion">{{ (endSpeed / 1 * 100).toFixed(0) }} %</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -232,8 +240,12 @@
|
||||
</div>
|
||||
<div class="speed-container">
|
||||
<div class="label">速度:</div>
|
||||
<el-slider v-model="postureSpeed" :min="0.1" :step="0.1" :max="2" />
|
||||
<div class="proportion">{{ (postureSpeed / 2 * 100).toFixed(0) }} %</div>
|
||||
<div class="speed-slider" @mouseenter="hoveredSlider = 'posture'" @mouseleave="hoveredSlider = null">
|
||||
<el-slider v-model="postureSpeed" :min="0.01" :step="0.01" :max="1" :show-tooltip="false" />
|
||||
<span v-show="hoveredSlider === 'posture'" class="speed-tooltip"
|
||||
:style="getTooltipPosition(postureSpeed)">{{ formatSpeedTooltip(postureSpeed) }}</span>
|
||||
</div>
|
||||
<div class="proportion">{{ (postureSpeed / 1 * 100).toFixed(0) }} %</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -336,6 +348,13 @@ const updateJoint = async (jointName, _dir) => {
|
||||
|
||||
const postureSpeed = ref(0.8)
|
||||
const endSpeed = ref(0.8)
|
||||
const hoveredSlider = ref(null)
|
||||
|
||||
const getTooltipPosition = (value) => ({
|
||||
left: `${((value - 0.01) / 0.99) * 100}%`
|
||||
})
|
||||
|
||||
const formatSpeedTooltip = (value) => Number(value).toFixed(2)
|
||||
|
||||
const speedData = reactive({
|
||||
vx: 0,
|
||||
@ -673,6 +692,42 @@ onUnmounted(() => {
|
||||
width: 100px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.speed-slider {
|
||||
position: relative;
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
|
||||
.speed-tooltip {
|
||||
position: absolute;
|
||||
bottom: calc(100% + 7px);
|
||||
z-index: 10;
|
||||
padding: 5px 8px;
|
||||
border: 1px solid $color-accent-border-strong;
|
||||
border-radius: 4px;
|
||||
color: $color-text-bright;
|
||||
background: $color-background-tooltip-translucent;
|
||||
box-shadow: 0 4px 12px $color-shadow-tooltip;
|
||||
font-size: 12px;
|
||||
line-height: 1;
|
||||
white-space: nowrap;
|
||||
pointer-events: none;
|
||||
transform: translateX(-50%);
|
||||
|
||||
&::after {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 50%;
|
||||
width: 7px;
|
||||
height: 7px;
|
||||
border-right: 1px solid $color-accent-border-strong;
|
||||
border-bottom: 1px solid $color-accent-border-strong;
|
||||
background: $color-background-tooltip-translucent;
|
||||
content: '';
|
||||
transform: translate(-50%, -50%) rotate(45deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user