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

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 垂直间距
相关推荐
T01156182 小时前
全栈项目实战手记|艺培场馆课时预约小程序 PC 管理端 Demo 完整开发成果展示
小程序
凡泰AI2 小时前
如何为政务 APP 搭建开放平台,实现多部门、第三方供应商标准化入驻与统一管理
android·大数据·小程序·uni-app·app·政务
AI工具人PM产品经理2 小时前
PIL 脚本批量生成小程序图标实战:零美工做出全套 tabBar
微信小程序·canvas·pil·python3.11·工具脚本
FX1317887KP_2 小时前
AI陪练正在重塑KET PET FCE口语备考,传统外教课还有必要吗?
人工智能·小程序·ket口语·pet口语·fce备考·剑桥英语
拖孩3 小时前
一个人 + AI 做的小程序,一个月赚了 36 块
前端·后端·微信小程序
lhldsg3 小时前
从零构建智慧场馆解决方案小程序:开发全流程实战
java·前端·小程序
vx-Biye_Design10 小时前
SSM伴侣动物伴护星小程序06330-计算机课程设计、毕业设计
spring boot·后端·elasticsearch·小程序·架构·课程设计·idea
小疯仔15 小时前
轨迹在地图上“漂“了 500 米?一文吃透 WGS-84→GCJ-02 坐标转换引擎(GPX→JSON 实战源码剖析)
小程序·json·notepad++
lhldsg20 小时前
全民健身解决方案软件开发实战:从架构设计到部署指南
java·前端·数据库·小程序
2501_916007471 天前
使用Apple Dashboards显示和自定iOS应用性能指标与数据可视化指南
android·ios·小程序·https·uni-app·iphone·webview