| | |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2023-12-18 11:02:55 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2023-12-18 17:55:12 |
| | | * @LastEditTime: 2023-12-19 11:37:53 |
| | | * @FilePath: \jczz_web\src\warterMarkVUE.js |
| | | * @Description: |
| | | * |
| | |
| | | */ |
| | | /*水印配置*/ |
| | | //声明 |
| | | let id = "1.23452384164.123412415"; |
| | | let watermark = {}; |
| | | let time, |
| | | textStr = ""; |
| | | |
| | | function handleResize() { |
| | | setWatermark(textStr); |
| | | } |
| | | //水印配置 |
| | | let setWatermark = (str) => { |
| | | let id = "1.23452384164.123412415"; |
| | | // 移除水印 判断 |
| | | if (document.getElementById(id) !== null) { |
| | | document.body.removeChild(document.getElementById(id)); |
| | |
| | | //创建画布 |
| | | let createCanvas = document.createElement("canvas"); |
| | | // 设置canvas画布大小 |
| | | createCanvas.width = 320; //宽度 |
| | | createCanvas.height = 200; //高度 |
| | | createCanvas.width = 340; //宽度 |
| | | createCanvas.height = 160; //高度 |
| | | |
| | | //创建Context2D对象作为2D渲染的上下文。 |
| | | let Context2D = createCanvas.getContext("2d"); |
| | | /*水印样式调整配置*/ |
| | | Context2D.rotate((-20 * Math.PI) / 100); // 水印旋转角度 |
| | | Context2D.rotate((-10 * Math.PI) / 100); // 水印旋转角度 |
| | | Context2D.font = "16px Vedana"; //水印文字大小 |
| | | Context2D.fillStyle = "#fff"; //水印颜色 HEX格式,可使用red 或者rgb格式 |
| | | Context2D.fillStyle = "#999"; //水印颜色 HEX格式,可使用red 或者rgb格式 |
| | | Context2D.textAlign = "center"; //水印水平位置 |
| | | Context2D.textBaseline = "Middle"; //水印垂直位置 |
| | | Context2D.fillText(str, createCanvas.width / 3.2, createCanvas.height / 1); |
| | | Context2D.fillText(str, createCanvas.width / 2.4, createCanvas.height / 1); |
| | | |
| | | //创建元素 |
| | | let createDiv = document.createElement("div"); |
| | |
| | | createDiv.style.background = |
| | | "url(" + |
| | | createCanvas.toDataURL("image/png") + |
| | | ") left top repeat, rgba(0, 0, 0, 0.3)"; //水印显示(关键代码) |
| | | ") left top repeat, rgba(0, 0, 0, 0.01)"; //水印显示(关键代码) |
| | | document.body.appendChild(createDiv); //在指定元素节点的最后一个子节点之后添加节点 |
| | | return id; |
| | | }; |
| | | |
| | | // 此方法只允许调用一次 |
| | | watermark.set = (str) => { |
| | | textStr = str; |
| | | let id = setWatermark(str); |
| | | //设置间隔 |
| | | setInterval(() => { |
| | | time = setInterval(() => { |
| | | if (document.getElementById(id) === null) { |
| | | id = setWatermark(str); |
| | | } |
| | | }, 500); |
| | | //改变大小时执行 |
| | | window.onresize = () => { |
| | | setWatermark(str); |
| | | }; |
| | | // 添加 resize 事件处理函数 |
| | | window.addEventListener("resize", handleResize); |
| | | }; |
| | | |
| | | watermark.remove = () => { |
| | | var element = document.getElementById(id); |
| | | // 删除元素 |
| | | if (element !== null) { |
| | | clearInterval(time); |
| | | |
| | | window.removeEventListener("resize", handleResize); |
| | | |
| | | element.parentNode.removeChild(element); |
| | | } |
| | | }; |
| | | |
| | | export default watermark; |