Homepage-imsyy/src/views/Box/index.vue

81 lines
1.4 KiB
Vue

<template>
<div class="box cards" @mouseenter="closeShow = true" @mouseleave="closeShow = false">
<transition name="el-fade-in-linear">
<close-one
class="close"
theme="filled"
size="28"
fill="#ffffff60"
v-show="closeShow"
@click="store.boxOpenState = false"
/>
</transition>
<transition name="el-fade-in-linear">
<setting-two
class="setting"
theme="filled"
size="28"
fill="#ffffff60"
v-show="closeShow"
@click="store.setOpenState = true"
/>
</transition>
<div class="content">
<TimeCapsule />
</div>
</div>
</template>
<script setup>
import { CloseOne, SettingTwo } from '@icon-park/vue-next';
import { mainStore } from '@/store';
import TimeCapsule from '@/components/TimeCapsule.vue';
const store = mainStore();
const closeShow = ref(false);
</script>
<style lang="scss" scoped>
.box {
flex: 1 0 0%;
margin-left: 0.75rem;
height: 80%;
position: relative;
animation: fade 0.5s;
&:hover {
transform: scale(1);
}
.close,
.setting {
position: absolute;
top: 14px;
right: 14px;
width: 28px;
height: 28px;
transition:
transform 0.3s,
opacity 0.3s;
&:hover {
transform: scale(1.2);
}
&:active {
transform: scale(1);
}
}
.setting {
right: 56px;
}
.content {
padding: 30px;
width: 100%;
height: 100%;
}
}
</style>