@@ -44,16 +44,22 @@ SPDX-License-Identifier: AGPL-3.0-only
4444 :class =" $style.image"
4545 />
4646 </component >
47- <template v-if =" isActuallyHidden " >
48- <div :class =" $style.hiddenText" >
47+ <Transition
48+ :duration =" prefer .s .animation ? 220 : 0 "
49+ :enterActiveClass =" $style .transition_fade_enterActive "
50+ :leaveActiveClass =" $style .transition_fade_leaveActive "
51+ :enterFromClass =" $style .transition_fade_enterFrom "
52+ :leaveToClass =" $style .transition_fade_leaveTo "
53+ >
54+ <div v-if =" isActuallyHidden" :class =" $style.hiddenText" >
4955 <div :class =" $style.hiddenTextWrapper" >
5056 <b v-if =" image.isSensitive" style =" display : block ;" ><i class =" ti ti-eye-exclamation" ></i > {{ i18n.ts.sensitive }}{{ prefer.s.dataSaver.media ? ` (${i18n.ts.image}${image.size ? ' ' + bytes(image.size) : ''})` : '' }}</b >
5157 <b v-else style =" display : block ;" ><i class =" ti ti-photo" ></i > {{ prefer.s.dataSaver.media && image.size ? bytes(image.size) : i18n.ts.image }}</b >
5258 <span v-if =" controls" style =" display : block ;" >{{ i18n.ts.clickToShow }}</span >
5359 </div >
5460 </div >
55- </template >
56- <template v-else- if =" controls " >
61+ </Transition >
62+ <template v-if =" ! isActuallyHidden && controls " >
5763 <div :class =" $style.indicators" >
5864 <div v-if =" ['image/gif', 'image/apng'].includes(image.type)" :class =" $style.indicator" >GIF</div >
5965 <div v-if =" image.comment" :class =" $style.indicator" >ALT</div >
@@ -275,6 +281,16 @@ function onContextmenu(ev: PointerEvent) {
275281 color : #fff ;
276282}
277283
284+ .transition_fade_enterActive ,
285+ .transition_fade_leaveActive {
286+ transition : opacity 0.5s ease ;
287+ }
288+
289+ .transition_fade_enterFrom ,
290+ .transition_fade_leaveTo {
291+ opacity : 0 ;
292+ }
293+
278294.visible {
279295 position : relative ;
280296 // box-shadow: 0 0 0 1px var(--MI_THEME-divider) inset;
@@ -347,3 +363,14 @@ html[data-color-scheme=light] .visible {
347363 object-position : center ;
348364}
349365 </style >
366+
367+ <style lang="scss">
368+ .fade-enter-active ,
369+ .fade-leave-active {
370+ transition : opacity 0.3s ease ;
371+ }
372+ .fade-enter-from ,
373+ .fade-leave-to {
374+ opacity : 0 ;
375+ }
376+ </style >
0 commit comments