评论

收藏

[JavaScript] vue水印-第二种方法:通过指令

开发技术 开发技术 发布于:2021-07-14 09:11 | 阅读数:244 | 评论:0

1、utils文件夹下新建 directives.js:
DSC0000.gif DSC0001.gif
import Vue from 'vue'
Vue.directive('watermark', (el, binding) => {
  function addWaterMarker(str, parentNode, font, textColor) {
  // 水印文字,父元素,字体,文字颜色
  var can = document.createElement('canvas')
  parentNode.appendChild(can)
  can.width = 400
  can.height = 200
  can.style.display = 'none'
  var cans = can.getContext('2d')
  cans.rotate((-20 * Math.PI) / 180)
  cans.font = font || '16px Microsoft JhengHei'
  cans.fillStyle = textColor || 'rgba(180, 180, 180, 0.3)'
  cans.textAlign = 'left'
  cans.textBaseline = 'Middle'
  cans.fillText(str, can.width / 3, can.height / 2)
  parentNode.style.backgroundImage = 'url(' + can.toDataURL('image/png') + ')'
  }
  addWaterMarker(
  binding.value.text,
  el,
  binding.value.font,
  binding.value.textColor
  )
})
View Code
2、main.js中引入
import  '@utils/directives'
3、在需要使用水印的标签上加上指令
<div class="box" v-watermark="{text:'hello~',textColor:'red'}">
  123
  </div>
效果图:
DSC0002.png



关注下面的标签,发现更多相似文章