console
const watermark = {
_observer: null,
insertDom: document.body,
set: function (text1, text2, config) {
var canvas = document.createElement('canvas')
canvas.width = 200;
canvas.height = 120;
canvas.style.display = 'none';
var shuiyin = canvas.getContext('2d');
shuiyin.rotate(-20 * Math.PI / 180);
shuiyin.translate(-50, 20)
shuiyin.fillStyle = "#f2f2f2";
shuiyin.font = "100 16px Microsoft JhengHei ";
shuiyin.fillText(text1, canvas.width / 3, canvas.height / 2);
shuiyin.fillText(text2, canvas.width / 3, canvas.height / 2 + 20);
var watermark = document.createElement('div')
let styleStr = '';
if (config.insert && document.querySelector(config.insert)) {
styleStr = `
position:absolute;
top:0;
left:0;
width:100%;
height:100%;
z-index:9999;
pointer-events:none;
background-repeat:repeat;
mix-blend-mode: multiply;
background-image:url('${canvas.toDataURL("image/png")}')`;
} else {
styleStr = `
position:fixed;
top:0;
left:0;
width:100vw;
height:100vh;
z-index:9999;
pointer-events:none;
background-repeat:repeat;
mix-blend-mode: multiply;
background-image:url('${canvas.toDataURL("image/png")}')`;
}
watermark.setAttribute('style', styleStr);
watermark.classList.add('watermark')
if (config.insert && document.querySelector(config.insert)) {
this.insertDom = document.querySelector(config.insert)
}
this.insertDom.appendChild(watermark)
this._observer = new MutationObserver(() => {
const wmInstance = document.querySelector('.watermark');
if ((wmInstance && wmInstance.getAttribute('style') !== styleStr) || !wmInstance) {
if (wmInstance) {
wmInstance.setAttribute('style', styleStr);
} else {
this.insertDom.appendChild(watermark)
}
}
})
this._observer.observe(this.insertDom, {
attributes: true,
subtree: true,
childList: true,
});
},
close: function () {
this._observer.disconnect();
let watermark = document.querySelector('.watermark')
this.insertDom.removeChild(watermark)
}
}
export default watermark
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=, initial-scale=">
<meta http-equiv="X-UA-Compatible" content="">
<title></title>
</head>
<body>
</body>
</html>
body{
width: 100%;
height: 100%;
}