After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 4.5 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 1.8 KiB |
@ -0,0 +1,114 @@ |
|||||||
|
<template> |
||||||
|
<div class="drop-down-menu-wrapper"> |
||||||
|
<div class="content-top"> |
||||||
|
<!-- 功能容器 --> |
||||||
|
<div |
||||||
|
class="func-wrapper" |
||||||
|
v-for="i in funcList" |
||||||
|
:key="i" |
||||||
|
> |
||||||
|
<img :src="i.img" class="func-img" width="100%"> |
||||||
|
<span class="func-text">{{ i.text }}</span> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="content-btm" @click="pullUp()"> |
||||||
|
<img src="@/assets/imgs/drop-down-menu/retract@2x.png" width="100%"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script lang="ts" setup> |
||||||
|
import {ref, onMounted} from 'vue'; |
||||||
|
|
||||||
|
const funcList = ref<any[]>([]); |
||||||
|
const emit = defineEmits(['pullUp']) |
||||||
|
|
||||||
|
onMounted(() => { |
||||||
|
funcList.value = [ |
||||||
|
{ |
||||||
|
img: '/src/assets/imgs/drop-down-menu/func-xiping@2x.png', |
||||||
|
text: '息屏' |
||||||
|
}, { |
||||||
|
img: '/src/assets/imgs/drop-down-menu/func-tongsuo@2x.png', |
||||||
|
text: '童锁' |
||||||
|
}, { |
||||||
|
img: '/src/assets/imgs/drop-down-menu/func-jiankang@2x.png', |
||||||
|
text: '健康' |
||||||
|
}, { |
||||||
|
img: '/src/assets/imgs/drop-down-menu/func-ziqingjie@2x.png', |
||||||
|
text: '自清洁' |
||||||
|
}, { |
||||||
|
img: '/src/assets/imgs/drop-down-menu/func-gaowenshajun@2x.png', |
||||||
|
text: '高温除菌' |
||||||
|
}, { |
||||||
|
img: '/src/assets/imgs/drop-down-menu/func-shuju@2x.png', |
||||||
|
text: '数据中心' |
||||||
|
}, { |
||||||
|
img: '/src/assets/imgs/drop-down-menu/func-jieneng@2x.png', |
||||||
|
text: '节能' |
||||||
|
}, { |
||||||
|
img: '/src/assets/imgs/drop-down-menu/func-set@2x.png', |
||||||
|
text: '设置' |
||||||
|
}, { |
||||||
|
img: '/src/assets/imgs/drop-down-menu/func-zhenduan@2x.png', |
||||||
|
text: '智慧健康诊断' |
||||||
|
}, |
||||||
|
]; |
||||||
|
}) |
||||||
|
|
||||||
|
/** 窗口上弹事件 */ |
||||||
|
const pullUp = () => { |
||||||
|
emit('pullUp'); |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
.drop-down-menu-wrapper { |
||||||
|
width: 100vw; |
||||||
|
height: 100vh; |
||||||
|
background-color: #0A101A; |
||||||
|
overflow: hidden; |
||||||
|
|
||||||
|
.content-top { |
||||||
|
padding: 19px 24px; |
||||||
|
display: flex; |
||||||
|
justify-content: space-between; |
||||||
|
flex-wrap: wrap; |
||||||
|
|
||||||
|
.func-wrapper { |
||||||
|
width: 210px; |
||||||
|
height: 200px; |
||||||
|
border-radius: 16px; |
||||||
|
display: flex; |
||||||
|
flex-direction: column; |
||||||
|
justify-content: center; |
||||||
|
align-items: center; |
||||||
|
margin: 5px 0; |
||||||
|
background: #20252E; |
||||||
|
|
||||||
|
.func-img { |
||||||
|
width: 66px; |
||||||
|
height: 66px; |
||||||
|
} |
||||||
|
|
||||||
|
.func-text { |
||||||
|
font-size: 28px; |
||||||
|
color: #FFF; |
||||||
|
font-family: SourceHanSansCN-Regular, SourceHanSansCN; |
||||||
|
font-weight: 400; |
||||||
|
margin-top: 42px; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
.content-btm { |
||||||
|
width: 100vw; |
||||||
|
text-align: center; |
||||||
|
padding-bottom: 6px; |
||||||
|
|
||||||
|
img { |
||||||
|
width: 142px; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
</style> |
@ -1,12 +1,63 @@ |
|||||||
<template> |
<template> |
||||||
<div id="home-screen-wrapper"></div> |
<div id="home-screen-wrapper"> |
||||||
|
<div class="ceshi"> |
||||||
|
<img id="imgs" src="" width="100%"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
</template> |
</template> |
||||||
|
|
||||||
<script lang="ts" setup></script> |
<script lang="ts" setup> |
||||||
|
import { time } from 'console'; |
||||||
|
import { ref, onMounted } from 'vue'; |
||||||
|
|
||||||
|
const aniImgs: any = ref([]); |
||||||
|
const timer: any = ref(); |
||||||
|
const imgs: any = ref(); |
||||||
|
const index = ref(0) |
||||||
|
|
||||||
|
onMounted(() => { |
||||||
|
imgs.value = document.getElementById('imgs'); |
||||||
|
// for (let i = 0; i <= 79; i++) { |
||||||
|
// aniImgs.value.push(`/src/assets/imgs/home-screen/切图-关机时循环_000${i < 10? '0' + i: i}`); |
||||||
|
// } |
||||||
|
run(); |
||||||
|
console.log(aniImgs.value); |
||||||
|
}) |
||||||
|
|
||||||
|
const run = () => { |
||||||
|
// 清除定时器 |
||||||
|
if (timer.value) { |
||||||
|
clearInterval(timer.value); |
||||||
|
timer.value = null; |
||||||
|
} |
||||||
|
change(); |
||||||
|
timer.value = setInterval(() => { |
||||||
|
index.value++; |
||||||
|
if (index.value > 79) { |
||||||
|
index.value = 0; |
||||||
|
} |
||||||
|
change(); |
||||||
|
}, 1000 / 24); |
||||||
|
} |
||||||
|
|
||||||
|
const change = () => { |
||||||
|
if (imgs.value) { |
||||||
|
imgs.value.src = `/src/assets/imgs/home-screen/切图-关机时循环_000${index.value < 10? '0' + index.value: index.value}.png`; |
||||||
|
} |
||||||
|
} |
||||||
|
</script> |
||||||
|
|
||||||
<style lang="scss" scoped> |
<style lang="scss" scoped> |
||||||
#home-screen-wrapper { |
#home-screen-wrapper { |
||||||
width: 1500px; |
width: 100vh; |
||||||
height: 1500px; |
height: 100vh; |
||||||
background: rgb(15, 188, 102); |
background: rgb(15, 188, 102); |
||||||
|
|
||||||
|
.ceshi { |
||||||
|
width: 100vw; |
||||||
|
} |
||||||
|
|
||||||
|
#imgs { |
||||||
|
width: 100%; |
||||||
|
} |
||||||
}</style> |
}</style> |