2022-03-29 11:27:03
问题核心是Van UI水印组件旋转后文字被隐藏,主要原因是旋转导致文字超出容器或被其他元素遮挡,可通过调整层级、优化布局或复制水印解决。
具体原因分析通过z-index确保水印位于最上层,避免被遮挡。
.van-watermark { position: relative; /* 确保z-index生效 */ z-index: 999;}适用场景:水印被普通页面元素遮挡时。
2. 扩大容器尺寸旋转后文字的边界框会变化,需动态调整容器宽度和高度。
<van-watermark :width="watermessage.length * 20" <!-- 增大宽度 --> :height="200" <!-- 显式设置高度 --> :rotate="isfull ? 65 : 0"> <template #content> <div :style="{ width: '100%', <!-- 填充容器 --> transformOrigin: 'center' <!-- 确保旋转中心正确 --> }"> <p>{{ watermessage }}</p> </div> </template></van-watermark>关键点:
通过叠加未旋转和旋转的水印,确保文字始终可见。
<div v-if="watermessage" style="position: relative;"> <!-- 旋转水印(低透明度) --> <van-watermark :rotate="isfull ? 65 : 0" :style="{ opacity: 0.2, pointerEvents: 'none' }" > <template #content> <div>{{ watermessage }}</div> </template> </van-watermark> <!-- 固定水印(高透明度) --> <van-watermark :rotate="0" :style="{ opacity: 0.5, pointerEvents: 'none' }" > <template #content> <div>{{ watermessage }}</div> </template> </van-watermark></div>优势:
减小旋转角度或降低透明度,减少视觉冲突。
<van-watermark :rotate="isfull ? 45 : 0" <!-- 从65度改为45度 --> :style="{ opacity: 0.3 }" <!-- 适当提高透明度 -->> <!-- 内容 --></van-watermark>适用场景:对旋转效果要求不高时。
推荐方案优化点: