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

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 垂直间距
相关推荐
CSharp精选营3 小时前
记一次家庭物品管理的折腾:从“收纳”到“可检索”
微信小程序·aicoding·屋册有序·物品收纳管理·家庭收纳管理工具
dreams_dream1 天前
微信小程序:页面事件-上拉触底
微信小程序·小程序
鹏多多1 天前
AI 到底能不能独立做个产品?我拿一个小程序验证了
前端·微信小程序·ai编程
wafrdggh2 天前
2026电商快递批量查询怎么用?固乔助手模板设置评测
大数据·数据库·小程序
计算机毕设定制辅导-无忧学长2 天前
《基于微信小程序的居家医疗陪护预约系统设计与实现》
java·spring boot·微信小程序·uniapp·居家医疗陪护预约系统
wafrdggh2 天前
2026 商城小程序平台哪个价格合理?把跨境附加成本这个坑算透
大数据·小程序
大数据技术派3 天前
我用AI写代码,做了3个小玩意儿
后端·微信小程序
律宏阔4 天前
Taro 4 项目从 npm 迁移到 pnpm 踩坑实录
前端·微信小程序·taro
恩创软件开发4 天前
自助KTV系统管理员续单功能
经验分享·小程序
多客:duokelijie5 天前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署