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

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 垂直间距
相关推荐
海上彼尚36 分钟前
【微信小程序】xxx该网站的安全证书存在问题,可选择 “继续”在浏览器中访问。
安全·微信小程序·小程序
FX1317887KP_1 小时前
KPF口语考试题目类型全梳理:KET、PET、FCE各级别考什么、怎么练
小程序·ket口语·pet口语·fce备考·剑桥英语
Ai-_Man2 小时前
ChatGPT还是不可以导出左侧所有对话,只能点进去单条内容导出,方法不对吗?
开发语言·javascript·人工智能·chatgpt·小程序·ecmascript
andrsted4 小时前
练题簿在线免费刷题:个人备考,从练新题到模拟自测怎么用?
学习·微信小程序·小程序·学习方法·刷题
多客:duokelijie5 小时前
婚恋交友小程序合规梳理:上线运营需要准备哪些资质与许可手续?
后端·mysql·微信小程序·前端框架·uni-app·php·持续部署
创了么OPC19 小时前
小程序能收款了,对公户还没开?独立开发者的交付闭环踩坑②
前端·微信小程序
一木 之林21 小时前
微信小程序开发全攻略·文章版|05 路由·交互·网络与音乐播放器实战
网络·微信小程序·小程序·交互
niucloud-admin1 天前
NIUCLOUD LITE AI开发文档—模块开发:微信小程序
微信小程序·小程序·notepad++
weishuangyun11 天前
家政上门预约小程序怎么做?本地家政接单系统搭建指南
小程序
举个栗子。1 天前
443 条断言全绿,输入框却 9 次提交都不能用:一次关于「假护栏」的复盘
微信小程序·自动化·ai编程