• vue水印-第二种方法:通过指令


    1、utils文件夹下新建 directives.js:

    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>

    效果图:

  • 相关阅读:
    bzoj4734
    51nod1056
    51nod1048
    51nod1248
    51nod1044
    51nod1132
    51nod1146
    51nod1226
    Spring Boot: Jdbc javax.net.ssl.SSLException: closing inbound before receiving peer's close_notify
    sqlserver命令创建数据库和表 demo
  • 原文地址:https://www.cnblogs.com/wuqilang/p/14846374.html
Copyright © 2020-2023  润新知