Skip to content

Watermark 水印

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

基础用法

基础部分内容展示

业务场景:表单数据保护

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

员工敏感数据预览

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

全屏水印

交互式自定义配置

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

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

z-index: 5

核心资产保护

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

normal
center

在 Nuxt 中使用

由于水印组件依赖于 DOM 操作和 Canvas 渲染,在 Nuxt 3 等 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字体样式设置对象Font见下文
gap水印之间的间距 [x, y][number, number][100, 100]
offset水印距离容器起始点的偏移 [x, y][number, number][0, 0]
fullScreen是否将水印挂载到 body 下全屏展示booleanfalse
antiTamper是否开启防篡改模式(监控 DOM 变更并强制恢复)booleantrue

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

Released under the MIT License.