Skip to content

Watermark 水印

给页面的特定区域添加水印。具有极强的防删除和防篡改能力。

基础用法

基础部分内容展示

业务场景:表单数据保护

在处理包含姓名、薪资等机密信息的表单时,水印是关键的安全防线。

员工敏感数据预览

账户: user_admin_01
姓名: 王晓明
联系电话: 138****8888
当前职级: P7 - 高级工程师
薪资绩效: ¥**,000 (A)
所属部门: 前端智能开发部

全屏水印

交互式自定义配置

通过下方的实验室,您可以实时探索高级配置。

打造极速、现代、旗舰级的 Vue 3 组件库

z-index: 5

核心资产保护

在这里,您可以深度定制水印。当调节 z-index < 5 时,水印文字会隐于蓝色卡片下方,实现页面元素的差异化保护。

normal
center

在 Nuxt 中使用

YhWatermark 可以安全用于 Nuxt。容器标记可在 SSR 阶段输出,真正的水印绘制会在挂载后于客户端执行。若希望浏览器专属区域在激活前完全不渲染水印容器,可再额外包裹 <ClientOnly>

vue
<template>
  <ClientOnly>
    <yh-watermark content="YH-UI Nuxt 驱动">
      <div style="height: 300px;">内容区</div>
    </yh-watermark>
  </ClientOnly>
</template>

API

Props

属性名说明类型默认值
width水印每个单元的宽度number120
height水印每个单元的高度number64
rotate单元格旋转角度number-22
globalRotate整体旋转角度number0
zIndex水印层级number9
image图片源,设置后 content 将失效string-
content水印文字内容,支持多行string | string[]'YH-UI'
font字体样式设置对象YhWatermarkFont见下文
gap水印之间的间距 [x, y][number, number][100, 100]
offset已声明的偏移属性。当前实现未在水印层定位时消费该配置[number, number][0, 0]
fullScreen是否使用固定定位容器覆盖整个视口。当前实现不会 Teleport 到 bodybooleanfalse
antiTamper是否开启防篡改模式(监控 DOM 变更并强制恢复)booleantrue
themeOverrides组件级主题覆盖变量。当前仅在非全屏模式下会合并到容器内联样式ComponentThemeVarsundefined

Font 对象说明

属性名说明类型默认值
color文字颜色string'rgba(0,0,0,0.15)'
fontSize字体大小number | string16
fontWeight字重string | number'normal'
fontFamily字体库string'sans-serif'
fontStyle字体样式'normal' | 'italic' | 'oblique''normal'
textAlign文本对齐方式'start' | 'end' | 'left' | 'right' | 'center''center'
lineHeight行高number22

Events

本项目 Watermark 水印组件暂无对外抛出的事件。

Slots

插槽名说明
default水印覆盖的内容区域

Expose

方法名说明类型
renderWatermark强制重新渲染水印(在容器大小动态变化但未触发监听时使用)() => void

主题变量 (CSS Variables)

组件使用 CSS 变量来定义基础样式,您可以在本地或全局进行覆盖。

变量名说明默认值
--yh-watermark-container-position包裹容器的定位方式relative
--yh-watermark-width组件宽度100%
--yh-watermark-height组件高度100%
--yh-watermark-fullscreen-z-index全屏模式下的强制层级9999

类型导出

名称说明
YhWatermarkProps组件 Props 类型
YhWatermarkFont水印字体配置类型
YhWatermarkSlots组件插槽类型
YhWatermarkExpose组件 Expose 类型
YhWatermarkInstance组件实例类型

Released under the MIT License.