千家信息网

vue项目如何实现对某个区域绘制水印

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍vue项目如何实现对某个区域绘制水印,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先看一下效果:其实原理很简单,就是使用canvas画成图,然后设置div的背
千家信息网最后更新 2026年11月01日vue项目如何实现对某个区域绘制水印

这篇文章主要介绍vue项目如何实现对某个区域绘制水印,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

首先看一下效果:

其实原理很简单,就是使用canvas画成图,然后设置div的背景即可,这里参考了其他人思路又按照我自己的需求,封装了一个插件,可以直接在项目中使用,这里可以对某一个单独的区域设置水印:

'use strict' const watermark = {} /** * * @param {要设置的水印的内容} str * @param {需要设置水印的容器} container */const setWatermark = (str, container) => {  const id = '1.23452384164.123412415'   if (container === undefined) {    return  }   // 查看页面上有没有,如果有则删除  if (document.getElementById(id) !== null) {    const childelement = document.getElementById(id)    childelement[xss_clean].removeChild(childelement)  }   var containerWidth = container.offsetWidth // 获取父容器宽  var containerHeight = container.offsetHeight // 获取父容器高  container.style.position = 'relative' // 设置布局为相对布局   // 创建canvas元素(先制作一块背景图)  const can = document.createElement('canvas')  can.width = 390 // 设置每一块的宽度  can.height = 200 // 高度  const cans = can.getContext('2d') // 获取canvas画布  cans.rotate(-20 * Math.PI / 180) // 逆时针旋转π/9  cans.font = '20px Vedana' // 设置字体  cans.fillStyle = 'rgba(200, 200, 200, 0.20)' // 设置字体的颜色  cans.textAlign = 'left' // 文本对齐方式  cans.textBaseline = 'Middle' // 文本基线  cans.fillText(str, 0, 4 * can.height / 5) // 绘制文字   // 创建一个div元素  const div = document.createElement('div')  div.id = id // 设置id  div.style.pointerEvents = 'none' // 取消所有事件  div.style.top = '0px'  div.style.left = '0px'  div.style.position = 'absolute'  div.style.zIndex = '100000'  div.style.width = containerWidth + 'px'  div.style.height = containerHeight + 'px'  div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat'  container.appendChild(div) // 追加到页面   return id} // 该方法只允许调用一次watermark.set = (str, container) => {  let id = setWatermark(str, container)  setInterval(() => {    if (document.getElementById(id) === null) {      id = setWatermark(str, container)    }  }, 500)  // 监听页面大小的变化  _window.onresize = () => {    setWatermark(str, container)  }} export default watermark

在页面中的使用方法:

引入该插件:

import Watermark from '@/external/watermark'

然后在需要的位置上设置refs="xxx",因为在vue项目中无法直接document.getElement的方式来获取元素,只能通过this.$refs.xxx来获取:

然后在mounted的钩子函数中这样写:

// 设置页面水印Watermark.set('高校党政云记录管理平台 ' + this.name, this.$refs.directrecordwp)

以上是"vue项目如何实现对某个区域绘制水印"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

水印 页面 项目 区域 元素 内容 容器 字体 布局 插件 文本 方式 方法 篇文章 背景 参考 事件 价值 位置 使用方法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 手磨咖啡 科技互联网产品 互联网科技有限公司经营范围 安徽鑫晟辉互联网科技 九亚互联网科技 时间互联网络科技 兼蜜互联网科技 华中科技有哪些互联网大佬 成都玖崟互联网科技有限公司乐商圈怎么样 金融科技与互联网金融相同和不同 全球顶尖互联网科技公司 辽宁互联网新科技 未来五年的互联网科技 互联网保险科技创业 允成互联网科技有限公司融资 洛阳共同富裕互联网科技有限公司 深圳艾果互联网通讯科技 上海互联网科技公司ppt 上海万顺科技互联网有限公司招聘 广东猫王互联网科技有限公司电话 互联网科技公司简介 河南云网互联网络科技有限公司 高科技互联网 齐家互联网科技有限公司 互联网科技大会 随着互联网科技发展 华中科技大学互联网的牛人 每天都有哪些好的互联网科技 互联网高科技绘画 现代科技的标志之一的互联网
0