2021-04-23 08:33:33 +02:00
|
|
|
import { Directive } from 'vue';
|
2021-09-23 16:01:32 +02:00
|
|
|
import { defaultStore } from '@client/store';
|
2021-04-23 08:33:33 +02:00
|
|
|
|
|
|
|
export default {
|
|
|
|
mounted(el, binding, vn) {
|
2021-09-23 16:01:32 +02:00
|
|
|
if (!defaultStore.state.animation) return;
|
|
|
|
|
2021-04-24 11:38:38 +02:00
|
|
|
el.classList.add('_anime_bounce_standBy');
|
|
|
|
|
2021-04-23 08:33:33 +02:00
|
|
|
el.addEventListener('mousedown', () => {
|
2021-04-24 11:38:38 +02:00
|
|
|
el.classList.add('_anime_bounce_standBy');
|
2021-04-23 08:33:33 +02:00
|
|
|
el.classList.add('_anime_bounce_ready');
|
|
|
|
|
|
|
|
el.addEventListener('mouseleave', () => {
|
|
|
|
el.classList.remove('_anime_bounce_ready');
|
|
|
|
});
|
|
|
|
});
|
|
|
|
|
|
|
|
el.addEventListener('click', () => {
|
|
|
|
el.classList.add('_anime_bounce');
|
|
|
|
});
|
|
|
|
|
|
|
|
el.addEventListener('animationend', () => {
|
|
|
|
el.classList.remove('_anime_bounce_ready');
|
|
|
|
el.classList.remove('_anime_bounce');
|
2021-04-24 11:38:38 +02:00
|
|
|
el.classList.add('_anime_bounce_standBy');
|
2021-04-23 08:33:33 +02:00
|
|
|
});
|
|
|
|
}
|
|
|
|
} as Directive;
|