From b970a8ebf888d7a1fd9ed40cb1632d6944a26ac1 Mon Sep 17 00:00:00 2001 From: kun <1422840143@qq.com> Date: Thu, 21 Sep 2023 18:59:10 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=B0=B4=E5=8D=B0=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/directives/modules/waterMarker.ts | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/directives/modules/waterMarker.ts b/src/directives/modules/waterMarker.ts index 11362a7..7c2fe6a 100644 --- a/src/directives/modules/waterMarker.ts +++ b/src/directives/modules/waterMarker.ts @@ -20,14 +20,9 @@ let style = ` background-repeat: repeat; pointer-events: none; `; -let str: string = ""; -let font: any = null; -let textColor: string = ""; import type { Directive, DirectiveBinding } from "vue"; -const addWaterMarker = (parentNode: any, binding: { str: string; font: any; textColor: string }) => { - str = str || ""; - font = font || "16px Microsoft JhengHei"; - textColor = textColor || "rgba(180, 180, 180, 0.3)"; +const addWaterMarker = (parentNode: any, binding: any = {}) => { + console.log(binding); // 水印文字,父元素,字体,文字颜色 let can: HTMLCanvasElement = document.createElement("canvas"); parentNode.appendChild(can); @@ -36,11 +31,11 @@ const addWaterMarker = (parentNode: any, binding: { str: string; font: any; text can.style.display = "none"; let cans = can.getContext("2d") as CanvasRenderingContext2D; cans.rotate((-20 * Math.PI) / 180); - cans.font = font || "16px Microsoft JhengHei"; - cans.fillStyle = textColor || "rgba(180, 180, 180, 0.3)"; + cans.font = binding.font || "16px Microsoft JhengHei"; + cans.fillStyle = binding.textColor || "rgba(180, 180, 180, 0.3)"; cans.textAlign = "left"; cans.textBaseline = "Middle" as CanvasTextBaseline; - cans.fillText(str, can.width / 10, can.height / 2); + cans.fillText(binding.text, can.width / 10, can.height / 2); // 创建waterMark父元素 const waterMark = document.createElement("div"); @@ -56,8 +51,9 @@ const addWaterMarker = (parentNode: any, binding: { str: string; font: any; text const waterMarker = { mounted(el: HTMLElement, binding: any) { + console.log(666); // addWaterMarker(binding.value.text, el, binding.value.font, binding.value.textColor); - el.onload = init.bind(el, binding); + el.onload = init(el, binding); } }; @@ -85,6 +81,7 @@ const createObserver = (el: HTMLElement, binding: any) => { }); }; const init = (el: HTMLElement, binding: any = {}) => { + console.log(666); // 设置水印 addWaterMarker(el, binding.value); // 启动监控