vue directive 指令添加背景水印

该文章介绍了一种利用JavaScript和HTML5canvas元素生成水印并将其作为背景图片应用到页面的方法。通过创建canvas,设置文字、颜色和旋转角度,然后将canvas转换为base64格式的图片,最后将图片设置为页面或组件的背景,实现自定义水印效果。示例代码展示了如何在Vue.js组件中实现这一功能。
摘要由CSDN通过智能技术生成

需求:给页面添加背景水印

思路:

1)使用 canvas 特性生成 base64 格式的图片文件,设置其字体大小,颜色等;

2)将其设置为背景图片,从而实现页面或组件水印效果。

示例:

function addWaterMarker(str, parentNode, font, textColor) {
  // 水印文字,父元素,字体,文字颜色
  var can = document.createElement('canvas')
  parentNode.appendChild(can)
  can.width = 200
  can.height = 150
  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 / 10, can.height / 2)
  parentNode.style.backgroundImage = 'url(' + can.toDataURL('image/png') + ')'
}

const waterMarker = {
  bind: function (el, binding) {
    addWaterMarker(binding.value.text, el, binding.value.font, binding.value.textColor)
  },
}

export default waterMarker

页面使用:

<template>
  <div class="demo-content" v-waterMarker="dataConfig"></div>
</template>

<script>
export default {
  name: 'demo',
  data () {
    return {
      dataConfig: { text: ' xxx版权所有', textColor: '#FB6969' }
    }
  },
  methods: {
  }
}
</script>
<style lang='less'>
.demo-content {
  width: 600px;
  height: 200px;
  border: 1px solid #d4cfcf;
}
</style>

页面效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值