fix(metronome): 视频改矩形完整显示,cover-view 挡住 PIP 按钮
之前圆形蒙版 + scale(1.4) 把小人手臂和头部裁掉一部分, 改成矩形容器: - walker-box 280×240 微圆角矩形,object-fit:contain 小人四肢完整露出,不再被切 - 容器 background 跟页面色一致,video 自带灰白边自然融入 - 移除 transform:scale 缩放(原本只为推 PIP 按钮出圆外) PIP/小窗按钮处理改为 cover-view: - cover-view 是小程序唯一能覆盖在 native video 上的元素 - 右上角放 86×64 跟背景同色的色块,挡住原生按钮 - #ifdef MP-WEIXIN 条件编译,只在小程序端启用 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -17,9 +17,9 @@
|
|||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
<!-- ===== 跑步小人(无边框,跟白底融合) ===== -->
|
<!-- ===== 跑步小人(矩形完整显示,跟白底融合) ===== -->
|
||||||
<view class="walker">
|
<view class="walker">
|
||||||
<view class="walker-clip">
|
<view class="walker-box">
|
||||||
<video
|
<video
|
||||||
id="runner-video"
|
id="runner-video"
|
||||||
class="runner-video"
|
class="runner-video"
|
||||||
@@ -34,10 +34,15 @@
|
|||||||
:enable-progress-gesture="false"
|
:enable-progress-gesture="false"
|
||||||
:show-mute-btn="false"
|
:show-mute-btn="false"
|
||||||
:picture-in-picture-mode="[]"
|
:picture-in-picture-mode="[]"
|
||||||
object-fit="cover"
|
object-fit="contain"
|
||||||
@error="onVideoError"
|
@error="onVideoError"
|
||||||
@loadedmetadata="onVideoLoaded"
|
@loadedmetadata="onVideoLoaded"
|
||||||
/>
|
/>
|
||||||
|
<!-- 微信原生 video 右上角的 PIP/小窗按钮无法靠属性彻底关掉,
|
||||||
|
用 cover-view 覆盖一个跟背景同色的小色块盖住它 -->
|
||||||
|
<!-- #ifdef MP-WEIXIN -->
|
||||||
|
<cover-view class="pip-mask"> </cover-view>
|
||||||
|
<!-- #endif -->
|
||||||
</view>
|
</view>
|
||||||
</view>
|
</view>
|
||||||
|
|
||||||
@@ -426,35 +431,41 @@ $shadow-md: 0 12rpx 28rpx rgba(15, 23, 42, 0.08);
|
|||||||
* ============================================================ */
|
* ============================================================ */
|
||||||
.walker {
|
.walker {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 220rpx;
|
height: 240rpx;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.walker-clip {
|
.walker-box {
|
||||||
/* 圆形蒙版裁掉 video 的灰白边 + 隐藏右上角原生小窗按钮
|
/* 矩形容器,小人完整显示,不再裁切
|
||||||
外圈柔化阴影颜色等于页面背景,圆形边缘自然消融到背景里
|
background 跟页面色一致,让 video 灰白渐变边自然融入背景 */
|
||||||
视觉上不再有硬切感的"边框"
|
position: relative;
|
||||||
*/
|
width: 280rpx;
|
||||||
width: 220rpx;
|
height: 240rpx;
|
||||||
height: 220rpx;
|
background: $bg-color;
|
||||||
border-radius: 50%;
|
border-radius: 24rpx;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
box-shadow:
|
|
||||||
0 0 0 6rpx $bg-color,
|
|
||||||
0 0 30rpx 12rpx $bg-color;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.runner-video {
|
.runner-video {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
/* scale 1.4: 把 video 内容放大,让自带的灰白渐变边和右上角原生
|
|
||||||
PIP/小窗按钮全部被推到圆形外,被 overflow:hidden 切掉 */
|
|
||||||
transform: scale(1.4);
|
|
||||||
background: transparent;
|
background: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 覆盖在 video 右上角原生 PIP/小窗按钮上的色块
|
||||||
|
仅小程序端有效(cover-view 是小程序唯一能盖住 native 组件的元素) */
|
||||||
|
.pip-mask {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
right: 0;
|
||||||
|
width: 86rpx;
|
||||||
|
height: 64rpx;
|
||||||
|
background: $bg-color;
|
||||||
|
border-bottom-left-radius: 24rpx;
|
||||||
|
}
|
||||||
|
|
||||||
/* ============================================================
|
/* ============================================================
|
||||||
* 三档位推荐
|
* 三档位推荐
|
||||||
* ============================================================ */
|
* ============================================================ */
|
||||||
|
|||||||
Reference in New Issue
Block a user