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

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 垂直间距
相关推荐
m0_5873830013 小时前
24小时自助健身房软硬件解决方案实战指南:从架构设计到部署实施
java·spring·小程序·架构·需求分析
m0_4628038814 小时前
会议签到里,手写签名怎样从“额外动作“变成流程环节
微信小程序
m0_5873830018 小时前
24小时自助健身房软硬件解决方案实战:从架构设计到部署指南
java·spring·小程序·架构·需求分析
CRMEB系统商城18 小时前
前后端技术栈全面换代!CRMEB 多商户(Java)v3.0更新预告
java·开发语言·小程序·php
醒目8020 小时前
从图像到拼豆图纸:像素化生成与色板匹配技术实践
微信小程序
2501_9160074721 小时前
苹果应用商店App Store上架费用标准及原因解析
android·ios·小程序·https·uni-app·iphone·webview
00后程序员张2 天前
苹果App Store上架指南:费用、原理与步骤详解
android·ios·小程序·https·uni-app·iphone·webview
paopaokaka_luck2 天前
个人综合管理小程序(echarts数据看板、健康数据记录与趋势查看、目标拆解和进度管理、日程待办与番茄钟、习惯打卡、收支统计、个人生活记录、跨模块智能提醒)
前端·javascript·spring·小程序·数据分析·echarts·生活
愚公搬代码2 天前
【愚公系列】《微信小程序项目实战(AI编程+视频图解)》002-一张新地图:AI创业的核心分析框架
人工智能·微信小程序·ai编程
m0_587383002 天前
广州24小时自助健身房解决方案实战指南与系统部署要点
java·spring·小程序·架构·需求分析