Sharkey/src/client/app/common/views/widgets/tips.vue

110 lines
1.9 KiB
Vue
Raw Normal View History

2018-02-15 03:36:42 +00:00
<template>
<div class="mkw-tips">
<p ref="tip"><fa :icon="['far', 'lightbulb']"/><span v-html="tip"></span></p>
2018-02-15 03:36:42 +00:00
</div>
</template>
<script lang="ts">
2019-01-18 04:06:11 +00:00
import anime from 'animejs';
2018-02-24 15:18:09 +00:00
import define from '../../../common/define-widget';
import i18n from '../../../i18n';
2018-02-15 03:36:42 +00:00
export default define({
name: 'tips'
}).extend({
i18n: i18n('common/views/widgets/tips.vue'),
2018-02-15 03:36:42 +00:00
data() {
return {
2018-11-09 05:13:40 +00:00
tips: [],
2018-02-15 03:36:42 +00:00
tip: null,
clock: null
};
},
2018-11-09 05:13:40 +00:00
created() {
this.tips = [
this.$t('tips-line1'),
this.$t('tips-line2'),
this.$t('tips-line3'),
this.$t('tips-line4'),
this.$t('tips-line5'),
this.$t('tips-line6'),
this.$t('tips-line7'),
this.$t('tips-line8'),
this.$t('tips-line9'),
this.$t('tips-line10'),
this.$t('tips-line11'),
this.$t('tips-line13'),
this.$t('tips-line14'),
this.$t('tips-line17'),
this.$t('tips-line19'),
this.$t('tips-line20'),
this.$t('tips-line21'),
this.$t('tips-line23'),
this.$t('tips-line24'),
this.$t('tips-line25')
];
},
2018-02-15 03:36:42 +00:00
mounted() {
2018-02-18 09:40:24 +00:00
this.$nextTick(() => {
2018-02-15 03:36:42 +00:00
this.set();
});
this.clock = setInterval(this.change, 20000);
},
beforeDestroy() {
clearInterval(this.clock);
},
methods: {
set() {
2018-11-09 05:13:40 +00:00
this.tip = this.tips[Math.floor(Math.random() * this.tips.length)];
2018-02-15 03:36:42 +00:00
},
change() {
anime({
targets: this.$refs.tip,
opacity: 0,
duration: 500,
easing: 'linear',
complete: this.set
});
setTimeout(() => {
anime({
targets: this.$refs.tip,
opacity: 1,
duration: 500,
easing: 'linear'
});
}, 500);
}
}
});
</script>
<style lang="stylus" scoped>
.mkw-tips
overflow visible !important
2018-12-30 04:19:06 +00:00
opacity 0.8
2018-02-15 03:36:42 +00:00
> p
display block
margin 0
padding 0 12px
text-align center
font-size 0.7em
2018-12-30 04:19:06 +00:00
color var(--text)
2018-02-15 03:36:42 +00:00
> [data-icon]
2018-02-15 03:36:42 +00:00
margin-right 4px
kbd
display inline
padding 0 6px
margin 0 2px
font-size 1em
font-family inherit
2018-12-30 04:19:06 +00:00
border solid 1px var(--text)
2018-02-15 03:36:42 +00:00
border-radius 2px
</style>