wartermark.ts 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // 页面添加水印效果
  2. const setWatermark = (str: string) => {
  3. const id = '1.23452384164.123412416';
  4. if (document.getElementById(id) !== null) document.body.removeChild(<HTMLElement>document.getElementById(id));
  5. const can = document.createElement('canvas');
  6. can.width = 200;
  7. can.height = 130;
  8. const cans = <CanvasRenderingContext2D>can.getContext('2d');
  9. cans.rotate((-20 * Math.PI) / 180);
  10. cans.font = '12px Vedana';
  11. cans.fillStyle = 'rgba(200, 200, 200, 0.30)';
  12. cans.textBaseline = 'middle';
  13. cans.fillText(str, can.width / 10, can.height / 2);
  14. const div = document.createElement('div');
  15. div.id = id;
  16. div.style.pointerEvents = 'none';
  17. div.style.top = '0px';
  18. div.style.left = '0px';
  19. div.style.position = 'fixed';
  20. div.style.zIndex = '10000000';
  21. div.style.width = `${document.documentElement.clientWidth}px`;
  22. div.style.height = `${document.documentElement.clientHeight}px`;
  23. div.style.background = `url(${can.toDataURL('image/png')}) left top repeat`;
  24. document.body.appendChild(div);
  25. return id;
  26. };
  27. /**
  28. * 页面添加水印效果
  29. * @method set 设置水印
  30. * @method del 删除水印
  31. */
  32. const watermark = {
  33. // 设置水印
  34. set: (str: string) => {
  35. let id = setWatermark(str);
  36. if (document.getElementById(id) === null) id = setWatermark(str);
  37. },
  38. // 删除水印
  39. del: () => {
  40. let id = '1.23452384164.123412416';
  41. if (document.getElementById(id) !== null) document.body.removeChild(<HTMLElement>document.getElementById(id));
  42. },
  43. };
  44. // 导出方法
  45. export default watermark;