|
@@ -11,11 +11,11 @@
|
|
|
</NavBar>
|
|
</NavBar>
|
|
|
<image class="top-bg" src="/static/image/home/top-bg.png" />
|
|
<image class="top-bg" src="/static/image/home/top-bg.png" />
|
|
|
<!-- 名片卡片:果冻弹入 -->
|
|
<!-- 名片卡片:果冻弹入 -->
|
|
|
- <view class="page-top" :style="cardStyle">
|
|
|
|
|
|
|
+ <view class="page-top" :class="{activeCard:pageIn}">
|
|
|
<UserCard :info="cardInfo" @call="makeCall" />
|
|
<UserCard :info="cardInfo" @call="makeCall" />
|
|
|
<ShareButton />
|
|
<ShareButton />
|
|
|
</view>
|
|
</view>
|
|
|
- <view class="card-content" :style="contentCardStyle">
|
|
|
|
|
|
|
+ <view class="card-content" :class="{activeCard:pageIn}">
|
|
|
<!-- 企业简介 -->
|
|
<!-- 企业简介 -->
|
|
|
<CompanyIntroduce></CompanyIntroduce>
|
|
<CompanyIntroduce></CompanyIntroduce>
|
|
|
</view>
|
|
</view>
|
|
@@ -63,35 +63,9 @@
|
|
|
|
|
|
|
|
// 入场动画状态
|
|
// 入场动画状态
|
|
|
const pageIn = ref(false)
|
|
const pageIn = ref(false)
|
|
|
- const contentIn = ref(false)
|
|
|
|
|
-
|
|
|
|
|
- // 名片卡片:默认可见,过渡由 onMounted 触发
|
|
|
|
|
- const cardStyle = computed(() => ({
|
|
|
|
|
- opacity: '1',
|
|
|
|
|
- transform: pageIn.value ? 'scale(1) translateY(0)' : 'scale(0.92) translateY(-20px)',
|
|
|
|
|
- transition: pageIn.value ? 'all 0.55s cubic-bezier(0.34, 1.3, 0.64, 1)' : 'none',
|
|
|
|
|
- }))
|
|
|
|
|
-
|
|
|
|
|
- // 企业简介:从底部淡入
|
|
|
|
|
- const contentCardStyle = computed(() => ({
|
|
|
|
|
- opacity: '1',
|
|
|
|
|
- transform: contentIn.value ? 'translateY(0)' : 'translateY(40px)',
|
|
|
|
|
- transition: contentIn.value ? 'all 0.45s ease-out' : 'none',
|
|
|
|
|
- }))
|
|
|
|
|
|
|
|
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
|
- // 先同步设偏移位置(transition: none 无动画)
|
|
|
|
|
- pageIn.value = false
|
|
|
|
|
- contentIn.value = false
|
|
|
|
|
- // 强制刷新后改为目标值,transition 生效
|
|
|
|
|
- const trigger = () => {
|
|
|
|
|
- pageIn.value = true
|
|
|
|
|
- }
|
|
|
|
|
- // 用两次 setTimeout 0 确保浏览器完成样式计算再触发
|
|
|
|
|
- setTimeout(trigger, 30)
|
|
|
|
|
- setTimeout(() => {
|
|
|
|
|
- contentIn.value = true
|
|
|
|
|
- }, 350)
|
|
|
|
|
|
|
+ pageIn.value = true
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
onShareAppMessage(() => {
|
|
onShareAppMessage(() => {
|
|
@@ -140,6 +114,7 @@
|
|
|
z-index: 1;
|
|
z-index: 1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
// 顶部背景区域
|
|
// 顶部背景区域
|
|
|
.header-bg {
|
|
.header-bg {
|
|
|
background: linear-gradient(135deg, #4A90E2 0%, #6FB3F2 50%, #87CEEB 100%);
|
|
background: linear-gradient(135deg, #4A90E2 0%, #6FB3F2 50%, #87CEEB 100%);
|
|
@@ -208,8 +183,11 @@
|
|
|
margin: 0 24rpx 24rpx;
|
|
margin: 0 24rpx 24rpx;
|
|
|
position: relative;
|
|
position: relative;
|
|
|
z-index: 2;
|
|
z-index: 2;
|
|
|
|
|
+ transform: scale(0.78);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
// 名片内容区域
|
|
// 名片内容区域
|
|
|
.card-content {
|
|
.card-content {
|
|
|
margin: 0 24rpx;
|
|
margin: 0 24rpx;
|
|
@@ -220,8 +198,11 @@
|
|
|
position: relative;
|
|
position: relative;
|
|
|
bottom: 24rpx;
|
|
bottom: 24rpx;
|
|
|
z-index: 2;
|
|
z-index: 2;
|
|
|
|
|
+ transform:translateY(150rpx);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
// 隐藏的 canvas 容器
|
|
// 隐藏的 canvas 容器
|
|
|
.hidden-canvas-box {
|
|
.hidden-canvas-box {
|
|
|
position: fixed;
|
|
position: fixed;
|