微信小程序全局安全水印组件实践:支持动态更新、全局生效、自定义样式

1、需求背景

很多企业内部小程序,都会有这样的需求:

  • 页面显示员工姓名、工号
  • 防止截图泄露
  • 全局统一水印
  • 动态切换水印内容
  • 不影响页面交互

效果如下:


2、核心思路

本方案采用 纯 WXML + CSS 水印方案,核心实现思路:

  • 使用大量 <text>,大面积覆盖,避免 rotate 后边缘露白
  • overflow hidden,防止超出区域滚动
  • fixed固定定位覆盖页面,超高z-index
  • CSS rotate 倾斜
  • pointer-events:none 不阻塞点击
  • 通过EventBus事件总线动态刷新

3、方案特点

  • 全局水印
  • 支持动态更新
  • 支持自定义样式
  • 不影响页面点击
  • 使用简单
  • 已封装为 npm 组件,真正做到开箱即用
  • 性能稳定

4、项目地址

GitHub:miniprogram-watermark

npm:@ericbyliang/miniprogram


5、使用方法

5.1 安装组件

安装 npm 包:

npm install @ericbyliang/miniprogram

5.2 全局注册组件

app.json 中声明:

{

"usingComponents": {

"watermark": "@ericbyliang/miniprogram/watermark/index"

}

}

5.3 页面使用

在需要显示水印的页面:

<watermark />

5.4 全局设置水印文本

const { setWatermarkText } = require("@ericbyliang/miniprogram");

// 设置水印,比如登录后,设置一次即可

setWatermarkText("林俊杰 2000022");

// 取消水印,比如在登录页面

setWatermarkText("");

这意味着:

  • 登录后可以设置员工信息
  • 退出登录后可以清除
  • 用户切换账号可动态刷新
5.5 动态设置水印文本&自定义水印样式

组件支持动态传参:

<watermark

text="周杰伦 2000021"

textSize="14"

textColor="rgba(80,80,80,0.08)"

rotate="-20"

gapX="120"

gapY="180"

/>

支持参数:

参数 说明
text 水印文本
textSize 字体大小(rpx)
textColor 水印颜色/透明度
rotate 旋转角度
gapX 水平间距
gapY 垂直间距
相关推荐
小羊Yveesss1 分钟前
2026年微信小程序搭建一般需要多长时间?不同方案周期和延期点
微信小程序·小程序
禾高网络3 小时前
互联网医院|AI 互联网医院成品开发系统
java·大数据·人工智能·小程序
小羊Yveesss4 小时前
2026年微信小程序搭建算什么费用?年费、设计费、开发费和维护费
微信小程序·小程序
2501_9159184110 小时前
PerfDog 太贵?iOS 性能监控工具的功能对比与选择
android·ios·小程序·https·uni-app·iphone·webview
码农客栈20 小时前
小程序学习(二十六)之“订单详情”
小程序
weixin_440058311 天前
2026知识付费小程序:年费全包零抽成,录播题库全功能覆盖
小程序·apache·小程序开发
小羊Yveesss1 天前
2026年微信小程序后端怎么搭建?后台、数据、接口和运维怎么选
运维·微信小程序·小程序
小皮虾1 天前
小程序首页性能优化实战:从 4 秒到 1.8 秒
前端·微信小程序
HackTwoHub1 天前
ARL灯塔重构版:支持APP/小程序/WEB资产同步扫描
人工智能·安全·web安全·网络安全·小程序·重构·自动化
投票竞赛1 天前
避雷按单场活动扣费平台,2026 在线投票测评不限频次新建投票评选活动
小程序