我是靠谱客的博主 追寻魔镜,这篇文章主要介绍前端实现页面水印,现在分享给大家,希望可以做个参考。

前端实现页面水印的思路,先将名称画到canvas上,再将canvas生成base64图片格式作为盒子的背景图追加到页面上,其中利用pointer-events: none属性实现点击穿透.

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
const watermark = {}; function setWatermark(str) { const id = '1.23452384164.123412415'; if (document.getElementById(id) !== null) { document.body.removeChild(document.getElementById(id)); } const can = document.createElement('canvas'); can.width = 150; can.height = 120; const cans = can.getContext('2d'); cans.rotate(-20 * Math.PI / 180); cans.font = '20px Vedana'; cans.fillStyle = 'rgba(200, 200, 200, 0.20)'; cans.textAlign = 'left'; cans.textBaseline = 'Middle'; cans.fillText(str, can.width / 3, can.height / 2); const div = document.createElement('div'); div.id = id; // 点击穿透 div.style.pointerEvents = 'none'; div.style.top = '70px'; div.style.left = '0px'; div.style.position = 'fixed'; div.style.zIndex = '2000'; div.style.width = document.documentElement.clientWidth - 100 + 'px'; div.style.height = document.documentElement.clientHeight - 100 + 'px'; div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat'; document.body.appendChild(div); return id; }; // 该方法只允许调用一次 watermark.set = function (str) { const id = setWatermark(str); setInterval(() => { if (document.getElementById(id) === null) { id = setWatermark(str); } }, 500); window.onresize = () => { setWatermark(str); }; }; export default watermark;

最后

以上就是追寻魔镜最近收集整理的关于前端实现页面水印的全部内容,更多相关前端实现页面水印内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部