需求
- 水印
- 不可删除
原理
① 水印
生成单个canvas
水印,生成base64
图片,放到div
背景图片中。
② 不可删除
MutationObserver
实现监视 DOM
变动。
③ 生成整片多个水印
background-repeat
实现重复。
④ 鼠标事件更改到水印下面
pointer-events: none
效果图
源码
/*
* @Author: cbw
* @Date: 2022-09-23 16:21:05
* @LastEditors: cbw
* @LastEditTime: 2022-09-26 11:22:07
* @Description:
*/
class WaterMark {
#canvasOptions; // canvas默认配置
#canvasIndividualOptions; //canvas个性化配置
#waterMarkStyle; // 水印默认配置
#waterMarkIndividualStyle; // 水印个性化配置
#wm; // 水印DOM
#Uuid; // 唯一id
#waterMarkStyleStr; // style字符串
constructor(canvasOptions = {
}, waterMarkStyle = {
}) {
// canvas默认配置
this.#canvasOptions = {
width: 400, // canvas宽
height: 400, // canvas高
font: "normal 16px 思源黑体_ Regular",
fillStyle: "rgba(10, 100, 80, .2)", // 文本颜色
textAlign: "center",
fillTextArr: ["Boen", "3150987521986"], // 文本
rotate: -20, // 旋转角度
fillTextX: 100, // 文本横坐标
fillTextY: 100, // 文本纵坐标
};
// 水印默认配置
this.#waterMarkStyle = {
position: "absolute",
left: 0,
top: 0,
right: 0,
bottom: 0,
"z-index": "99999",
"pointer-events": "none"