diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2022-08-31 02:19:25 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2022-08-31 02:19:25 +0900 |
| commit | 2d8e7b4da759b23800d517ee5979fa83484faf00 (patch) | |
| tree | 8725249b421dd2145834eef2405c1acabe6f10f1 | |
| parent | refactor(client): align filename to component name (diff) | |
| download | misskey-2d8e7b4da759b23800d517ee5979fa83484faf00.tar.gz misskey-2d8e7b4da759b23800d517ee5979fa83484faf00.tar.bz2 misskey-2d8e7b4da759b23800d517ee5979fa83484faf00.zip | |
enhance(client): improve analog-clock
| -rw-r--r-- | packages/client/src/components/MkAnalogClock.vue | 12 | ||||
| -rw-r--r-- | packages/client/src/widgets/clock.vue | 12 |
2 files changed, 21 insertions, 3 deletions
diff --git a/packages/client/src/components/MkAnalogClock.vue b/packages/client/src/components/MkAnalogClock.vue index b709a22548..40ef626aed 100644 --- a/packages/client/src/components/MkAnalogClock.vue +++ b/packages/client/src/components/MkAnalogClock.vue @@ -40,7 +40,7 @@ <line class="s" - :class="{ animate: !disableSAnimate }" + :class="{ animate: !disableSAnimate && sAnimation !== 'none', elastic: sAnimation === 'elastic', easeOut: sAnimation === 'easeOut' }" :x1="5 - (0 * (sHandLengthRatio * handsTailLength))" :y1="5 + (1 * (sHandLengthRatio * handsTailLength))" :x2="5 + (0 * ((sHandLengthRatio * 5) - handsPadding))" @@ -99,6 +99,7 @@ const props = withDefaults(defineProps<{ twentyfour?: boolean; graduations?: 'none' | 'dots' | 'numbers'; fadeGraduations?: boolean; + sAnimation?: 'none' | 'elastic' | 'easeOut'; }>(), { numbers: false, thickness: 0.1, @@ -106,6 +107,7 @@ const props = withDefaults(defineProps<{ twentyfour: false, graduations: 'dots', fadeGraduations: true, + sAnimation: 'elastic', }); const graduationsMajor = computed(() => { @@ -161,7 +163,7 @@ function tick() { disableSAnimate = false; }, 100); }, 100); - }, 500); + }, 700); } else { sAngle = Math.PI * s / 30; } @@ -211,9 +213,13 @@ onBeforeUnmount(() => { will-change: transform; transform-origin: 50% 50%; - &.animate { + &.animate.elastic { transition: transform .2s cubic-bezier(.4,2.08,.55,.44); } + + &.animate.easeOut { + transition: transform .7s cubic-bezier(0,.7,.3,1); + } } } </style> diff --git a/packages/client/src/widgets/clock.vue b/packages/client/src/widgets/clock.vue index 660a1f0ecb..51d48b30a6 100644 --- a/packages/client/src/widgets/clock.vue +++ b/packages/client/src/widgets/clock.vue @@ -9,6 +9,7 @@ :graduations="widgetProps.graduations" :fade-graduations="widgetProps.fadeGraduations" :twentyfour="widgetProps.twentyFour" + :s-animation="widgetProps.sAnimation" /> <MkDigitalClock v-if="widgetProps.label === 'time' || widgetProps.label === 'timeAndTz'" class="_monospace label c time" :show-s="false" :offset="tzOffset"/> <div v-if="widgetProps.label === 'tz' || widgetProps.label === 'timeAndTz'" class="_monospace label d offset">{{ tzOffsetLabel }}</div> @@ -70,6 +71,17 @@ const widgetPropsDef = { type: 'boolean' as const, default: true, }, + sAnimation: { + type: 'radio' as const, + default: 'elastic', + options: [{ + value: 'none', label: 'None', + }, { + value: 'elastic', label: 'Elastic', + }, { + value: 'easeOut', label: 'Ease out', + }], + }, twentyFour: { type: 'boolean' as const, default: false, |