Files
love-key-web/src/components/PageAdvantage.vue

250 lines
4.8 KiB
Vue
Raw Normal View History

2026-02-25 18:49:41 +08:00
<template>
<section class="page page-advantage">
2026-02-26 20:26:22 +08:00
<div class="content-wrapper">
<div class="image-side">
2026-02-27 16:03:45 +08:00
<img src="/src/assets/images/three-phone.png" class="phone-img anim-item" />
2026-02-25 18:49:41 +08:00
</div>
2026-02-26 20:26:22 +08:00
<div class="text-side">
2026-02-27 16:03:45 +08:00
<h2 class="section-title anim-item">
2026-02-26 20:26:22 +08:00
Every opening is an<br />
2026-02-27 14:20:35 +08:00
unknown encounter.
2026-02-26 20:26:22 +08:00
</h2>
2026-02-27 16:03:45 +08:00
<div class="section-card anim-item">
2026-02-27 14:39:04 +08:00
<img src="/src/assets/images/three-douhao.png" class="douhao-img">
2026-02-27 16:03:45 +08:00
<p class="section-desc anim-item">
2026-02-27 14:20:35 +08:00
Every moment you open it, you embark on a poetic encounter with the unknown, and meet the unexpected beauty.
</p>
<div class="hero-buttons">
<a href="#"><img src="/src/assets/images/android.png" class="btn-img" /></a>
<a href="#"><img src="/src/assets/images/appStore.png" class="btn-img" /></a>
</div>
</div>
2026-02-25 18:49:41 +08:00
</div>
</div>
2026-02-26 20:26:22 +08:00
<div class="deco deco-1">💎</div>
<div class="deco deco-2">🎁</div>
2026-02-25 18:49:41 +08:00
</section>
</template>
<script setup>
</script>
2026-02-26 20:26:22 +08:00
<style scoped lang="less">
2026-02-25 18:49:41 +08:00
.page-advantage {
width: 100%;
height: 100vh;
2026-02-26 20:26:22 +08:00
background: #ffffff;
color: #222;
2026-02-25 18:49:41 +08:00
display: flex;
align-items: center;
justify-content: center;
position: relative;
overflow: hidden;
}
2026-02-26 20:26:22 +08:00
.content-wrapper {
display: flex;
align-items: center;
justify-content: center;
gap: @gap-section;
max-width: @content-max;
width: 100%;
padding: 0 @gap-content;
2026-02-25 18:49:41 +08:00
}
2026-02-26 20:26:22 +08:00
.text-side { flex: 1; }
2026-02-25 18:49:41 +08:00
.section-title {
2026-02-26 20:26:22 +08:00
font-size: @font-title;
font-weight: 800;
line-height: 1.25;
margin-bottom: clamp(12px, 1.2vh, 28px);
color: #1a1a1a;
2026-02-27 14:20:35 +08:00
margin-left: -25%;
2026-02-25 18:49:41 +08:00
}
2026-02-27 14:20:35 +08:00
.section-card{
2026-02-27 14:39:04 +08:00
position: relative;
2026-02-27 14:20:35 +08:00
width: clamp(400px, 32vw, 1600px);;
height: clamp(200px, 16vw, 800px);
background: #FFFFFF;
box-shadow: 0px 39px 113px 0px rgba(2,190,172,0.2);
border-radius: 2px 100px 2px 2px;
padding: 10% ;
margin-left: -38%;
2026-02-25 18:49:41 +08:00
2026-02-26 20:26:22 +08:00
font-size: @font-desc;
line-height: 1.8;
color: #888;
2026-02-27 14:39:04 +08:00
.douhao-img{
position: absolute;
height: 20%;
left: 40%;
top: 15%;
}
2026-02-25 18:49:41 +08:00
}
2026-02-27 14:39:04 +08:00
2026-02-27 14:20:35 +08:00
.hero-buttons {
display: flex;
gap: clamp(10px, 3vw, 35px);
margin-top: 20px;
}
.btn-img {
height: clamp(36px, 6.6vh, 120px);
width: auto;
display: block;
transition: transform 0.3s;
&:hover {
transform: translateY(-2px);
}
}
2026-02-26 20:26:22 +08:00
.image-side {
2026-02-25 18:49:41 +08:00
flex: 1;
display: flex;
justify-content: center;
}
2026-02-27 14:20:35 +08:00
.phone-img {
height: clamp(320px, 75vh, 800px);
width: auto;
display: block;
}
2026-02-26 20:26:22 +08:00
.phone-placeholder {
width: @phone-w-main;
height: @phone-h-main;
border: 2px dashed #ddd;
border-radius: clamp(16px, 1.5vw, 36px);
2026-02-25 18:49:41 +08:00
display: flex;
align-items: center;
justify-content: center;
2026-02-26 20:26:22 +08:00
color: #bbb;
font-size: @font-small;
background: #fafafa;
2026-02-25 18:49:41 +08:00
}
2026-02-26 20:26:22 +08:00
.deco {
position: absolute;
font-size: clamp(24px, 2.5vw, 60px);
opacity: 0.15;
animation: float 3.5s ease-in-out infinite;
2026-02-25 18:49:41 +08:00
}
2026-02-26 20:26:22 +08:00
.deco-1 { top: 15%; left: 8%; animation-delay: 0.3s; }
.deco-2 { bottom: 12%; right: 10%; animation-delay: 1.2s; }
@keyframes float {
0%, 100% { transform: translateY(0); }
50% { transform: translateY(-12px); }
2026-02-25 18:49:41 +08:00
}
2026-02-27 18:09:06 +08:00
@media (min-width: 1921px) {
2026-02-27 18:49:14 +08:00
.content-wrapper {
max-width: min(1600px, 86vw);
width: min(1600px, 86vw);
gap: clamp(28px, 2.4vw, 56px);
padding: 0 clamp(40px, 3vw, 86px);
justify-content: center;
}
.image-side {
flex: 0 1 min(30vw, 520px);
justify-content: center;
}
.phone-img {
height: min(82vh, 900px);
}
.text-side {
flex: 0 1 min(42vw, 760px);
}
2026-02-27 18:09:06 +08:00
.section-title {
margin-left: 0;
2026-02-27 18:49:14 +08:00
max-width: 16ch;
font-size: clamp(48px, 2.7vw, 78px);
line-height: 1.22;
2026-02-27 18:09:06 +08:00
}
2026-02-27 18:49:14 +08:00
.section-card {
width: min(100%, 700px);
min-height: clamp(240px, 19vw, 420px);
height: auto;
margin-left: 0;
padding: clamp(26px, 2.2vw, 42px);
border-radius: 16px 80px 16px 16px;
}
2026-02-27 18:09:06 +08:00
2026-02-27 18:49:14 +08:00
.section-desc {
max-width: 34ch;
2026-02-27 18:09:06 +08:00
}
}
2026-02-26 20:26:22 +08:00
@media (max-width: 768px) {
.content-wrapper {
flex-direction: column-reverse;
2026-02-27 14:39:04 +08:00
align-items: center;
justify-content: center;
gap: 20px;
padding: 0 20px;
}
.text-side {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.section-title {
text-align: center;
margin-left: 0;
font-size: clamp(24px, 6vw, 36px);
2026-02-27 15:24:15 +08:00
width: 80vw;
2026-02-27 14:39:04 +08:00
}
.section-card {
width: 100%;
max-width: 360px;
height: auto;
margin-left: 0;
padding: 20px;
border-radius: 16px 36px 16px 16px;
box-sizing: border-box;
}
.section-desc {
text-align: center;
}
.hero-buttons {
justify-content: center;
margin-top: 14px;
2026-02-25 18:49:41 +08:00
}
2026-02-27 14:39:04 +08:00
.btn-img {
height: clamp(34px, 6vh, 56px);
}
.image-side {
width: 100%;
display: flex;
justify-content: center;
}
2026-02-27 14:20:35 +08:00
.phone-img {
2026-02-27 14:39:04 +08:00
height: clamp(220px, 38vh, 420px);
width: auto;
display: block;
}
.deco {
display: none;
}
2026-02-25 18:49:41 +08:00
}
</style>