fix(首页头图): 羊水囊边缘和外部背景柔和过渡,去掉割裂感 (v26093008)

- 静态囊图边缘改为 r232→300 平滑羽化,底图在囊外加一圈很柔的暖光,把囊壁化进底色。
- 去掉 .hero-sac 的 CSS 椭圆遮罩(横竖半径不同,把囊壁左右削掉、上下留着,是割裂的主因)。
- 视频遮罩放宽为 74%→96%,和静态囊壁柔和叠合,镜头推近时也不出边。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-30 09:30:17 +00:00
parent 9bb3c5a533
commit d5ee5c8654
7 changed files with 13 additions and 12 deletions

View File

@@ -191,8 +191,8 @@ a.skip:focus{left:16px;top:16px}
hero 橙色区底缘:中部 ≈y420(210) 两侧 ≈y340(170) → 椭圆下沿 44px
⚠️ 上面这些是**设计稿**的数,不是现在的实现值。设计稿里没有 slogan,
加进去之后品牌字以下整列都下移了,实际纵向排布以 .home-hero 里那笔账为准。 */
/* 2026-09-30 背景换成孕 25 周图(底子 assets/img/973ada248e19.jpg,1560×750 = 3 倍图 520×250;
羊水囊 + 宝宝单独一层 c8db7fd56e68.jpg + 视频 b6476cfce328.mp4,见 .hero-baby):
/* 2026-09-30 背景换成孕 25 周图(底子 assets/img/7bbc5d7192c0.jpg,1560×750 = 3 倍图 520×250;
羊水囊 + 宝宝单独一层 d5060a4a27fe.jpg + 视频 b6476cfce328.mp4,见 .hero-baby):
只抠了原图里的羊水囊 + 宝宝(孕肚太写实,用户要求去掉),缩到原来约 8 成放在右侧,
底子是暖桃橙渐变(取囊内羊水色 ≈#D6724F,用户要求整块头图和羊水同色调顺下来)
+ 囊后一圈淡暖光晕 + 淡金色散景光点。
@@ -203,7 +203,7 @@ a.skip:focus{left:16px;top:16px}
position:relative;color:#fff;overflow:hidden;
background:
linear-gradient(90deg,rgba(150,55,35,.14) 0%,rgba(150,55,35,.05) 38%,rgba(150,55,35,0) 58%),
url(assets/img/973ada248e19.jpg) right center/auto 100% no-repeat,
url(assets/img/7bbc5d7192c0.jpg) right center/auto 100% no-repeat,
#c8644c;
padding:env(safe-area-inset-top) 15px 0 16px;
/* 设计稿橙区 210px。但设计稿里气泡下缘是被白卡盖住的,
@@ -304,20 +304,21 @@ a.skip:focus{left:16px;top:16px}
.hero-sac 静态图垫底 = 母婴作图给的 25w.mp4 第 1 帧(囊内 600×600 摆在容器 (10,30))
.hero-kid 同一块 600×600 截成的短视频:原片前 10s 正放 + 倒放 = 20s 无缝循环
(原片镜头在慢慢推近、结尾姿势和开头对不上,直接 loop 会跳;倒放回来首尾就是同一帧)。
只露囊内(遮罩 86%→98%),囊壁用底下静态图的,镜头推近时囊壁不会跟着胀。
只露囊内(遮罩 74%→96% 宽羽化,和静态囊壁柔和叠在一起),囊壁用底下静态图的,镜头推近时囊壁不会跟着胀。
放起来之前 opacity:0,JS 收到 playing 再淡入 —— 放不了就一直是静态图,不会出现黑框/播放按钮。 */
.hero-baby{position:absolute;z-index:2;right:0;
top:calc((250px + env(safe-area-inset-top)) * .0667);
width:calc((250px + env(safe-area-inset-top)) * .8267);
height:calc((250px + env(safe-area-inset-top)) * .88);
pointer-events:none;user-select:none}
.hero-sac{display:block;width:100%;height:100%;
-webkit-mask-image:radial-gradient(closest-side,#000 91%,transparent 100%);
mask-image:radial-gradient(closest-side,#000 91%,transparent 100%)}
/* 静态囊图自己就是从底图原位切出来的、边缘已在图里羽化(r 232→300 平滑过渡)+ 底图在囊外垫了一圈柔光,
四角和底图逐像素一致,所以这里**不再加 CSS 遮罩** —— 以前那道 91% 的椭圆遮罩横竖半径不同,
会把囊壁左右削掉一截、上下留着,边缘看着割裂。 */
.hero-sac{display:block;width:100%;height:100%}
.hero-kid{position:absolute;left:1.613%;top:4.545%;width:96.774%;height:90.909%;
object-fit:cover;background:transparent;opacity:0;transition:opacity .8s ease;
-webkit-mask-image:radial-gradient(closest-side,#000 86%,transparent 98%);
mask-image:radial-gradient(closest-side,#000 86%,transparent 98%)}
-webkit-mask-image:radial-gradient(closest-side,#000 74%,transparent 96%);
mask-image:radial-gradient(closest-side,#000 74%,transparent 96%)}
.hero-kid.is-on{opacity:1}
/* 嘴边的小气泡。起点定在视频里嘴(拳头)大致的位置(50%/47%),往左上飘 ——
宝宝头朝右上侧躺,左上正好是「水面」方向。z-index 压在视频上面。 */