当前位置: 首页 > news >正文

Vue在页面上添加水印

第一步:在自己的项目里创建一个js文件;如图所示我在在watermark文件中创建了一个名为waterMark.js文件。

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 = 800can.height = 250let cans = can.getContext('2d')cans.rotate(-10 * Math.PI / 180) // 水印旋转角度cans.font = '26px Vedana'cans.fillStyle = '#333333'cans.textAlign = 'center'cans.textBaseline = 'Middle'cans.fillText(str1, can.width / 2, can.height) // 水印在画布的位置x,y轴cans.fillText(str2, can.width / 2, can.height + 30)let div = document.createElement('div')div.id = iddiv.style.pointerEvents = 'none'div.style.top = '140px'div.style.left = '0px'div.style.opacity = '0.3'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))}
}

第二步:在要添加水印的页面导入

import { removeWatermark, setWaterMark } from "@/../../waterMark"; //根据自己文件路径修改

第三步:在mounted参数协商这几行代码

mounted() {//设置水印内容,这段代码实现的是两行文本内容的水印。let str1 = "我是水印";let str2 = sessionStorage.getItem(key1)setWaterMark(str1, str2);
},
destroyed() {removeWatermark();},
//sessionStorage.getItem(key1)可以获取当前登陆用户的信息,自己根据需要进行修改即可。

 按照这三部就可以实现。

http://www.lryc.cn/news/267661.html

相关文章:

  • SQL server 数据库练习题及答案(练习2)
  • minicube搭建golang容器服务
  • 图片批量处理:图片批量缩放,高效调整尺寸的技巧
  • 直接插入排序【从0-1学数据结构】
  • C++/CLI——1简介
  • C#实现串口通讯
  • NLP论文阅读记录 - 以大语言模型为参考学习总结
  • 前端---资源路径
  • 【2024考研】心情记录
  • MySQL数据库日志管理和数据的备份及恢复
  • node-schedule nodejs定时提醒(并判断段是否是工作日)
  • LeetCode 75| 前缀和
  • 智能,轻量,高效的爬虫工具 (爬虫宝第一代), HSpider
  • IDEA Maven Helper插件 解决jar冲突
  • 装饰 Web3 项目的用户交互界面(Web3项目二实战之四)
  • 【数据库系统概论】第3章-关系数据库标准语言SQL(3)
  • 理解io/nio/netty
  • 旅游品牌网站搭建的作用是什么
  • Linux操作系统——进程(五)环境变量
  • 西门子博途怎么使用PID_Compact做pid调试
  • 结构型模式 | 适配器模式
  • 基于Python的车牌识别系统实现
  • 时间序列预测模型介绍及使用经验总结
  • Docker知识总结
  • 算法训练营Day25
  • docker笔记2-docker 容器
  • redis 从0到1完整学习 (七):ZipList 数据结构
  • 2015年第四届数学建模国际赛小美赛C题科学能解决恐怖主义吗解题全过程文档及程序
  • 基于Java开发的微信约拍小程序
  • 蓝桥杯的学习规划