vue实现在页面上添加水印的示例代码

 更新时间:2023年12月26日 09:42:50   作者:chuyufengling  
这篇文章主要给大家介绍一下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 = 800
  can.height = 250
  let 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 = id
  div.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)可以获取当前登陆用户的信息,自己根据需要进行修改即可。

按照这三部就可以实现。

到此这篇关于vue实现在页面上添加水印的示例代码的文章就介绍到这了,更多相关vue页面添加水印内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Vue3中无法为el-tree-select设置反选问题解析

    Vue3中无法为el-tree-select设置反选问题解析

    这篇文章主要介绍了Vue3中无法为el-tree-select设置反选问题分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • VUE使用canvas绘制管线管廊实现思路

    VUE使用canvas绘制管线管廊实现思路

    这篇文章主要为大家介绍了VUE使用canvas绘制管线管廊实现思路详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • 深入理解vue-loader如何使用

    深入理解vue-loader如何使用

    本篇文章主要介绍了vue-loader,vue-loader是webpack下loader插件 可以把.vue文件输出成组件,有兴趣的可以了解一下
    2017-06-06
  • vue3 hook自动导入原理解析

    vue3 hook自动导入原理解析

    这篇文章主要介绍了vue3 hook自动导入的原理,介绍了API的自动导入及组件的自动导入,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • Vue中使用vue-plugin-hiprint插件进行打印的功能实现

    Vue中使用vue-plugin-hiprint插件进行打印的功能实现

    hiprint 是一个web 打印的js组件,无需安装软件,支持windows,macOS,linux 系统,支持移动端,PC端浏览器,angular,vue,react 等 分页预览,打印,操作简单,运行快速,本文介绍了Vue中使用vue-plugin-hiprint插件进行打印,需要的朋友可以参考下
    2025-04-04
  • elementUI表格多选框this.$refs.xxx.toggleRowSelection无效问题

    elementUI表格多选框this.$refs.xxx.toggleRowSelection无效问题

    这篇文章主要介绍了elementUI表格多选框this.$refs.xxx.toggleRowSelection无效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • elementUI组件中el-date-picker限制时间范围精确到小时的方法

    elementUI组件中el-date-picker限制时间范围精确到小时的方法

    现在需要做一个时间选择器,可以根据小时(同时选天和小时)和天 和月,节假日等类型控制日历的选择样式,下面这篇文章主要给大家介绍了关于elementUI组件中el-date-picker限制时间范围精确到小时的相关资料,需要的朋友可以参考下
    2023-04-04
  • 完美解决vue 项目开发越久 node_modules包越大的问题

    完美解决vue 项目开发越久 node_modules包越大的问题

    这篇文章主要介绍了vue 项目开发越久 node_modules包越大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • 基于Vant UI框架实现时间段选择器

    基于Vant UI框架实现时间段选择器

    这篇文章主要为大家详细介绍了基于Vant UI框架实现时间段选择器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • 浅谈nuxtjs校验登录中间件和混入(mixin)

    浅谈nuxtjs校验登录中间件和混入(mixin)

    这篇文章主要介绍了浅谈nuxtjs校验登录中间件和混入(mixin),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11

最新评论