vue实现给页面添加水印

2023-10-27

 第一步,先封装以下文件

// 创建utils/watermark.js文件
/**  水印添加方法  */

let setWatermark = (str1, str2) => {
  let id = '1.23452384164.123412415'

  if (document.getElementById(id) !== null) {
    document.body.removeChild(document.getElementById(id))
  }

  let can = document.createElement('canvas')
  // 设置canvas画布大小
  can.width = 150
  can.height = 80

  let cans = can.getContext('2d')
  cans.rotate(-20 * Math.PI / 180) // 水印旋转角度
  cans.font = '15px Vedana'
  cans.fillStyle = '#666666'
  cans.textAlign = 'center'
  cans.textBaseline = 'Middle'
  cans.fillText(str1, can.width / 2, can.height) // 水印在画布的位置x,y轴
  cans.fillText(str2, can.width / 2, can.height + 22)

  let div = document.createElement('div')
  div.id = id
  div.style.pointerEvents = 'none'
  div.style.top = '40px'
  div.style.left = '0px'
  div.style.opacity = '0.15'
  div.style.position = 'fixed'
  div.style.zIndex = '100000'
  div.style.width = document.documentElement.clientWidth + 'px'
  div.style.height = document.documentElement.clientHeight  + 'px'
  div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat'
  document.body.appendChild(div)
  return id
}

// 添加水印方法
export const setWaterMark = (str1, str2) => {
  let id = setWatermark(str1, str2)
  if (document.getElementById(id) === null) {
    id = setWatermark(str1, str2)
  }
}

// 移除水印方法
export const removeWatermark = () => {
  let id = '1.23452384164.123412415'
  if (document.getElementById(id) !== null) {
    document.body.removeChild(document.getElementById(id))
  }
}

第二步,页面中引入

// vue中直接引用、使用
import { removeWatermark, setWaterMark } from '@/utils/watermark'
mounted() {
    setWaterMark('admin', 'password');
},
destroyed() {
    removeWatermark();
},

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue实现给页面添加水印 的相关文章

  • 【数据结构】二叉树的链式结构

    数据结构 二叉树的链式存储结构 二叉树的存储结构 typedef int BTDataType 二叉树的结构 typedef struct BinaryTreeNode BTDataType data 树的值 struct BinaryTr

随机推荐

  • 图像处理中饱和度、色调、对比度的定义

    目录 饱和度 色调 对比度 转自这里 图像处理 image processing 用计算机对图像进行分析 以达到所需结果的技术 又称影像处理 图像处理一般指数字图像处理 数字图像是指用工业相机 摄像机 扫描仪等设备经过拍摄得到的一个大的二维
  • MongoDB数据库

    介绍 1 MongoDB是非关系型文档型数据库 开源 高性能 高可用 高扩展 2 数据存储层级 文档 对应行 gt 集合 对应表 gt 数据库 3 关系型数据库中的一行对应MongoDB数据库中的一个文档 4 存储数据格式是BSON格式 相
  • VTK

    https blog csdn net www doling net article details 8763686
  • 毕业设计基于安卓的校园拍卖系统(附下载链接)

    基于安卓的校园拍卖系统 含导出APP 点我下载源码资源 介绍 基于安卓的校园拍卖系统 使用IDEA开发 SQLite作为数据库 支付宝沙盒作为支付工具 系统具有用户登录注册 管理员登录 发布商品 商品竞价 商品审核 支付尾款等功能 使用说明
  • Spring-IOC

    IOC相关 一 Ioc Inversion of Control 控制反转 传统的对象引用是采用 new 对象 的形式 例如 Book book new Book 每次引用都需要重新创建 耦合性高 控制反转则是由主动创建转换为外部 IOC容
  • 深度之眼(七)——矩阵的初等变换

  • Windows进程状态API之Ps API

    windows的进程状态信息函数主要分为两类 一类是PS PROCESS STATUS HELPER API 另外一类是Th TOOL HELP API 本文介绍PS API Ps API 函数列表及其功能说明 使用Ps API需要包含ps
  • JS实现给json数组动态赋值的方法及实用在线工具

    Json 数组也是数组 1 var jsonstr name a value 1 name b value 2 var jsonarray eval jsonstr var arr name names val value values v
  • 左手坐标系与右手坐标系(转)

    转自 http www cnblogs com mythou p 3327046 html 1 空间直角坐标系 下面摘录一段百科的解析 这些都是数学基础 过空间定点O作三条互相垂直的数轴 它们都以O为原点 具有相同的单位长度 这三条数轴分别
  • electron-builder 打包 exe 异常错误集锦

    项目背景 公司内部一个监控系统 需要运行在PC端 项目技术 vue electron vue router vuex vuex electron element ui echarts mysql 打包异常 Error Unresolved
  • 移动H2-3获取超管密码

    本文主要参考自 https www bilibili com read cv18292443 确保能正常访问光猫后台 192 168 1 1 然后用浏览器打开 http 192 168 1 1 webcmcc gui device info
  • 物联网技术及应用计算机,物联网的关键技术及计算机物联网的应用

    关键词 计算机 物联网 关键技术 应用 1 物联网的相关介绍 1 1 物联网的概念 物联网 Internet of things 是科技高速发展的产物 也是信息时代发展的象征 从字面意思来看 物联网就是通过互联网将相同的或者不同的物体连接起
  • 数据库系统原理———两段锁协议、死锁练习题

    一 题目描述 14 考虑T和T2两个事务 T1 R A R B B A B W B T2 R B R A A A B W A 1 改写T和T2 增加加锁操作和解锁操作 并要求遵循两阶段封锁协议 2 说明T和T2的执行是否会引起死锁 给出T和
  • Go语言创始人从Google离职

    点击关注公众号 互联网架构师 后台回复 2T获取2TB学习资源 上一篇 Alibaba开源内网高并发编程手册 pdf 前两天 谷歌Go语言产品负责人Steve Francia突然宣布离职 并回顾总结自己在谷歌的6年生涯经历 以及分享了离开的
  • Selenium成长之路-07简单对象定位之tag name方法

    继续学习元素定位 tag name 每个前端开发人员 都有自己的习惯 所以 不一定每一个开发人员都喜欢用id name来做标签 所以我们就需要掌握其他的定位方法 例如tag name 下面我们继续来进行百度首页的定位 可以看到首页下图中红框
  • linux命令---GNU awk介绍

    概述 gawk是GNU工程 是一种编程语言 它实现了标准awk的所有功能 用于在linux unix下对文本和数据进行处理 数据可以来自标准输入 stdin 一个或多个文件 或其它命令的输出 它支持用户自定义函数和动态正则表达式等先进功能
  • Qt 使用openssl库

    在windows下面 QT开发使用ssl库一开始总会有些问题 这里记录一下最近解决的找不到库的经过 安装QT时如果选择了支持openssl 那么qt就会编译一个版本的openssl库 通常会放在几个地方 这里就不多说了 在安装目录找一找就是
  • PTAL1-016 查验身份证 c++实现 多种方法 多种细节

    目录 先上代码 我遇到的问题 首先 对题目的理解 其次 是对代码的优化问题 最后 返回值 多种解法 1 换种数据结构 2 back 函数 3 类 先上代码 include
  • 如何在app store营销之实战技巧(6)

    是的 偶不算程序员 试头像 秀一下业娱作品 第520贴 献给我爱的XXX google docs被墙了 chrome os 2009 iPhone全球技术巡讲 北京站参会确认 邮件收到了 哈哈 恭喜Dr Stone Wars Lite升级啦
  • vue实现给页面添加水印

    第一步 先封装以下文件 创建utils watermark js文件 水印添加方法 let setWatermark str1 str2 gt let id 1 23452384164 123412415 if document getEl