@@ -258,9 +258,17 @@
|
|||||||
>
|
>
|
||||||
<view class="app-launch-stage">
|
<view class="app-launch-stage">
|
||||||
<image
|
<image
|
||||||
class="app-launch-image"
|
class="app-launch-image app-launch-image-lqip"
|
||||||
|
src="/static/guide/app-launch-loading-lqip.webp"
|
||||||
|
mode="aspectFill"
|
||||||
|
/>
|
||||||
|
<image
|
||||||
|
class="app-launch-image app-launch-image-full"
|
||||||
|
:class="{ loaded: launchImageLoaded && !launchImageFailed }"
|
||||||
src="/static/guide/app-launch-loading.webp"
|
src="/static/guide/app-launch-loading.webp"
|
||||||
mode="aspectFill"
|
mode="aspectFill"
|
||||||
|
@load="handleLaunchImageLoad"
|
||||||
|
@error="handleLaunchImageError"
|
||||||
/>
|
/>
|
||||||
<view class="app-launch-shade"></view>
|
<view class="app-launch-shade"></view>
|
||||||
<view class="app-launch-brand">
|
<view class="app-launch-brand">
|
||||||
@@ -388,6 +396,8 @@ const launchProgress = ref(8)
|
|||||||
const launchLoadingText = ref('正在初始化三维场景')
|
const launchLoadingText = ref('正在初始化三维场景')
|
||||||
const launchInitialModelSettled = ref(false)
|
const launchInitialModelSettled = ref(false)
|
||||||
const launchOverlayRecoverable = ref(false)
|
const launchOverlayRecoverable = ref(false)
|
||||||
|
const launchImageLoaded = ref(false)
|
||||||
|
const launchImageFailed = ref(false)
|
||||||
const showRoutePlanner = ref(false)
|
const showRoutePlanner = ref(false)
|
||||||
const routeStartPoint = ref<RoutePointOption | null>(null)
|
const routeStartPoint = ref<RoutePointOption | null>(null)
|
||||||
const routeEndPoint = ref<RoutePointOption | null>(null)
|
const routeEndPoint = ref<RoutePointOption | null>(null)
|
||||||
@@ -535,6 +545,16 @@ const handleLaunchRetry = () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const handleLaunchImageLoad = () => {
|
||||||
|
launchImageLoaded.value = true
|
||||||
|
launchImageFailed.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleLaunchImageError = () => {
|
||||||
|
launchImageLoaded.value = false
|
||||||
|
launchImageFailed.value = true
|
||||||
|
}
|
||||||
|
|
||||||
const handleLaunchContinue = () => {
|
const handleLaunchContinue = () => {
|
||||||
launchOverlayRecoverable.value = false
|
launchOverlayRecoverable.value = false
|
||||||
hideLaunchOverlay()
|
hideLaunchOverlay()
|
||||||
@@ -1439,20 +1459,40 @@ const handleExplainBack = () => {
|
|||||||
height: 100dvh;
|
height: 100dvh;
|
||||||
min-height: 560px;
|
min-height: 560px;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
background: #f5f5ed;
|
background:
|
||||||
|
radial-gradient(circle at 50% 20%, rgba(224, 225, 0, 0.24), rgba(224, 225, 0, 0) 34%),
|
||||||
|
linear-gradient(180deg, #f5f5ed 0%, #e1e5d9 42%, #151713 100%);
|
||||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.04);
|
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.04);
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-launch-image {
|
.app-launch-image {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
inset: 0;
|
inset: 0;
|
||||||
|
z-index: 0;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
transform-origin: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-launch-image-lqip {
|
||||||
|
filter: blur(10px);
|
||||||
|
transform: scale(1.08);
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-launch-image-full {
|
||||||
|
opacity: 0;
|
||||||
|
transform: scale(1.01);
|
||||||
|
transition: opacity 0.24s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.app-launch-image-full.loaded {
|
||||||
|
opacity: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.app-launch-shade {
|
.app-launch-shade {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
inset: 0;
|
inset: 0;
|
||||||
|
z-index: 1;
|
||||||
background:
|
background:
|
||||||
linear-gradient(180deg, rgba(245, 245, 237, 0.92) 0%, rgba(245, 245, 237, 0.62) 24%, rgba(10, 12, 9, 0.08) 52%, rgba(0, 0, 0, 0.56) 100%),
|
linear-gradient(180deg, rgba(245, 245, 237, 0.92) 0%, rgba(245, 245, 237, 0.62) 24%, rgba(10, 12, 9, 0.08) 52%, rgba(0, 0, 0, 0.56) 100%),
|
||||||
linear-gradient(180deg, rgba(224, 225, 0, 0.28) 0, rgba(224, 225, 0, 0) 138px);
|
linear-gradient(180deg, rgba(224, 225, 0, 0.28) 0, rgba(224, 225, 0, 0) 138px);
|
||||||
@@ -1460,6 +1500,7 @@ const handleExplainBack = () => {
|
|||||||
|
|
||||||
.app-launch-brand {
|
.app-launch-brand {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
z-index: 2;
|
||||||
top: calc(env(safe-area-inset-top) + 58px);
|
top: calc(env(safe-area-inset-top) + 58px);
|
||||||
left: 24px;
|
left: 24px;
|
||||||
right: 24px;
|
right: 24px;
|
||||||
@@ -1498,6 +1539,7 @@ const handleExplainBack = () => {
|
|||||||
|
|
||||||
.app-launch-status {
|
.app-launch-status {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
z-index: 2;
|
||||||
left: 24px;
|
left: 24px;
|
||||||
right: 24px;
|
right: 24px;
|
||||||
bottom: calc(env(safe-area-inset-bottom) + 56px);
|
bottom: calc(env(safe-area-inset-bottom) + 56px);
|
||||||
|
|||||||
BIN
static/guide/app-launch-loading-lqip.webp
Normal file
BIN
static/guide/app-launch-loading-lqip.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 344 B |
Reference in New Issue
Block a user