给指定的元素添加水印

it2022-05-05  134

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  


最新回复(0)