给指定的元素添加水印

let watermark = {}
/*
 @desc:给指定的元素添加水印
 @params { Object }obj
 @params1 { String } canvasId canvas元素
 @params2 { String } contentId canvas父容器元素
 @params3 { String } canW canvas生成图标的宽度
 @params4 { String } canH canvas生成图标的高度
 @params5 { String } texts 水印的文字
 @return { String } canvas的ID
 */
let setWatermark = ( obj ) => {
  const{ canvasId,contentId,canW,canH,texts } = obj;

  let id = canvasId || 'canvasIds_123123';
  let contentEle = document.getElementById(contentId);
  if(!contentEle) return;
  let canvasEle  = document.getElementById(id);
  if (canvasEle !== null) {
    contentEle.removeChild(canvasEle);
  }

  let can = document.createElement('canvas');

  can.width = canW||300
  can.height = canH||200

  let cans = can.getContext('2d');
  //设置canvas文字的翻转度数
  cans.rotate(-18 * Math.PI / 180);
  //设置文字样式
  cans.font = '22px Vedana'
  cans.fillStyle = 'rgba(130, 132, 138, 0.40)'
  cans.textAlign = 'center'
  cans.textBaseline = 'Middle'
  //填充文字并设置文字距离图片的left和top位置
  cans.fillText(texts,canW/4,canH/4)

  //生成承载图片的容器div
  let div = document.createElement('div');
  div.id = id;
  //设置容器的样式
  div.style.pointerEvents = 'none'
  div.style.top = '70px'
  div.style.left = '0px'
  div.style.position = 'absolute'
  div.style.zIndex = '10'
  div.style.width = contentEle.offsetWidth  + 'px'
  div.style.height = '100%';
  //将生成的图片放入容器中作为背景图
  div.style.background = 'url(' + can.toDataURL('image/png') + ') center center repeat'

  //最终将该容器添加到需要水印的元素中
  contentEle.appendChild(div)
  return id
}

// 该方法只允许调用一次
watermark.set = (str) => {

    setWatermark(str)

}
/*
 @desc:删除指定元素上的水印
 @params { Object }obj
 @params1 { String } canvasId canvas元素
 @params2 { String } contentId canvas父容器元素
 @return { null }
 */
watermark.remove = (obj) => {
  const{ canvasId,contentId } = obj;
  let id = canvasId || '1.23452384164.123412415'
  let contentEle = document.getElementById(contentId);
  if(!contentEle) return;
  let canvasEle  = document.getElementById(id);
  if (canvasEle !== null) {
    contentEle.removeChild(canvasEle)
  }

}
export default watermark
 

猜你喜欢

转载自blog.csdn.net/weixin_41421227/article/details/96430529