vue项目如何实现对某个区域绘制水印
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章主要介绍vue项目如何实现对某个区域绘制水印,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!首先看一下效果:其实原理很简单,就是使用canvas画成图,然后设置div的背
千家信息网最后更新 2025年01月18日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安全错误 数据库的锁怎样保障安全 网络安全公司如何运作 软件开发一般要学多久呀 数据库怎么查询库的属组 改服务器dns 软件开发与测试师是做什么的 日照微信公众号软件开发公司 盐城大数据服务器代理厂家 网络数据库技术培训 数据库技术特点教案 如何查看数据库的密钥 网络安全模型的理解和认识 服务器内部错误是什么意思 生果软件开发 网络安全字典攻击怎么防范 麻将软件开发常用指南 数据库bv_id 廊坊软件开发销售电话 分布式数据库用哪个软件 数据库上的模型和语言 开元棋牌服务器连接码 计算机网络安全国内外的发展 货拉拉门店服务器 违反网络安全通知 app软件开发制作公司推荐 高保真设计用哪些软件开发 南宁直销系统软件开发 sql数据库显示已经存在 软件开发工作表 数据库提交图片怎么看 access数据库生成不了