Vue 页面中使用水印效果

  • 水印效果
  • 使用方法

水印效果

  1. 全屏水印

  2. 指定容器水印

使用方法

  1. 项目中新建一个 watermark.js 文件

    let watermark = {};let setWatermark = (text, sourceBody) => {let id =Math.random() * 10000 +"-" +Math.random() * 10000 +"/" +Math.random() * 10000;if (document.getElementById(id) !== null) {document.body.removeChild(document.getElementById(id));}let can = document.createElement("canvas");can.width = 120; //设置水印之间的左右间距can.height = 80; //设置水印之间的上下间距let cans = can.getContext("2d");cans.rotate((-20 * Math.PI) / 180);cans.font = "15px Vedana";cans.fillStyle = "rgba(0, 0, 0, .5)";cans.textAlign = "left";cans.textBaseline = "Middle";cans.fillText(text, can.width / 20, can.height);let water_div = document.createElement("div");water_div.id = id;water_div.className = "watermarkClass";water_div.style.pointerEvents = "none";water_div.style.background ="url(" + can.toDataURL("image/png") + ") left top repeat";if (sourceBody) {water_div.style.width = "100%";water_div.style.height = "100%";sourceBody.appendChild(water_div);} else {water_div.style.top = "3px";water_div.style.left = "0px";water_div.style.position = "fixed";water_div.style.zIndex = "100000";water_div.style.width = document.documentElement.clientWidth + "px";water_div.style.height = document.documentElement.clientHeight + "px";document.body.appendChild(water_div);}return id;
    };/***  该方法只允许调用一次*  @param:*  @text == 水印内容*  @sourceBody == 水印添加的位置,不传就是body* */
    watermark.set = (text, sourceBody) => {const domArr = Array.from(document.getElementsByClassName("watermarkClass"));for (let i = 0; i < domArr.length; i++) {const element = domArr[i];// element.parentNode.removeChild(element);element.remove();}if (text == "") {return;}setWatermark(text, sourceBody);// let id = setWatermark(text, sourceBody);// setInterval(() => {//   if (document.getElementById(id) === null) {//     id = setWatermark(text, sourceBody);//   }// }, 2000);// window.onresize = () => {//   setWatermark(text, sourceBody);// };
    };export default watermark;
    
  2. main.js 中引入 watermark.js

    // 引入水印文件地址
    import watermark from './util/watermark.js'
    Vue.prototype.$watermark = watermark
    
  3. 页面中使用
    this.$watermark.set(text,dom)

    参数 说明 是否必填
    text 水印内容
    dom 水印容器。若不传,则全屏水印,若传,则指定容器。

    (1)全屏水印

    <template><div class="page"></div>
    </template><script>
    export default {data() {return {};},mounted(){this.$watermark.set("水印")},beforeDestroy() {this.$watermark.set("");}
    };
    </script><style scoped>
    .page{width: 100%;height: 100%;background-color: skyblue;
    }
    </style>
    

    (2)指定容器水印

    <template><div class="page"><div ref="content" style="width: 500px;height: 500px;border: 2px solid red;"></div></div>
    </template><script>
    export default {data() {return {};},mounted(){this.$watermark.set("水印",this.$refs.content)},beforeDestroy() {this.$watermark.set("",this.$refs.content);}
    };
    </script><style scoped>
    .page{width: 100%;height: 100%;background-color: skyblue;
    }
    </style>
    

Vue - 页面添加水印效果相关推荐

  1. vue 页面添加水印并在浏览器不能去除

    创建watermark.js文件 let watermark = {}let setWatermark = (str) => {let id = '1.23452384164.123412416 ...

  2. Vue 页面引导效果(首次登录新用户引导) driver.js 引导页

    轻量级.无依赖的原生 JavaScript 引擎,可将用户的注意力集中在整个页面上:这是一个功能强大且高度可定制的基于原生JavaScript开发的新用户引导库. 简介及使用教程 Driver.js是 ...

  3. html中加水印,静态html页面 添加水印效果 且 水印不可复制

    1 2 3 4 5 //调整iframe高度 6 functioniFrameHeight() {7 varifm=document.getElementById("iframepage&q ...

  4. vue 项目中添加水印效果

    在项目中有给部分区域或者是整个页面添加水印的需求.加水印其实很简单,它的原理是使用 canvas 生成图片在使用 toDataURL 转化为 base64 格式,然后将转换后的图片设置为背景图,从而实 ...

  5. Vue项目在页面添加水印功能

    Vue项目在页面添加水印功能 创建watermark.js文件 let watermark = {}let setWatermark = (str) => {let id = '1.234523 ...

  6. vue页面切换动画-类似于轮播效果、渲染列表给每一行数据加上显示动画

    vue页面切换动画-类似于轮播效果 <transition :name="transitionName"><router-view/> </trans ...

  7. vue项目中添加水印效果

    基于vue的架构中,在网页中添加水印效果,具体实现 代码如下: 新建js文件:例如warterMark.js 'use strict'let watermark = {}let setWatermar ...

  8. 在vue页面中使用伪元素进行 气泡框创建|选中效果自定义|滚动条自定义

    在vue页面中使用伪元素进行 气泡框|单选框自定义|滚动条自定义 1. 基于vue,使用到的图标是element plus 2. vue单页面代码 <template><h1> ...

  9. vue项目添加水印,防止刷新页面水印消失

    引入一个waterMark.js文件之后 IE各种问题 问题1:页面出现空白,登录页面都没有显示出来 问题2:IE低版本(11以下)总是报语法错误 问题1出现的原因是js文件包含箭头函数 问题2出现的 ...

最新文章

  1. 【BZOJ】1045: [HAOI2008]糖果传递(中位数)
  2. 【Linux】Linux中Vim基础
  3. 带有Java Pojo作为输入输出示例的AWS Lambda函数
  4. 领导要提拔你的5个征兆,机会来临时不要让自己错过
  5. python用什么来写模块-使用C语言编写Python模块-引子【转】
  6. mssql-sqlserver入门必备知识收集
  7. 在CentOS 6.7部署wordpress博客系统Discuz论坛系统
  8. SpringBoot学习之一 Unable to find a single main class from the following candidates
  9. JavaScript的陷阱[转]
  10. 微信支付开发(1) JS API支付V3版(转)
  11. Linux下如何查看高CPU占用率线程 LINUX CPU利用率计算
  12. winxp 升级远程连接方法
  13. r语言中v1=c(v1i),1 R语言介绍 | R语言教程
  14. Jetson nano 2G跑通Nvidia官方案例Jetson Inference
  15. 笔记本电脑如何安装Linux系统
  16. python中seek函数_Python seek()函数
  17. 【引路帖】【MATLAB】【求解最优化问题】
  18. 自学实前后端践项目2 phone Store 1
  19. 收藏,核心期刊的投稿、审稿、出刊流程详解
  20. unity动态更换鼠标光标

热门文章

  1. c语言全局变量 extern,全局变量和extern详解
  2. ArcGIS教程:了解叠加分析
  3. WebGoat 8.1 靶场 刷题通关教程全攻略 - (A1) Injection
  4. 计算机usb接口打开方法,win7开启或禁用USB接口的操作方法
  5. 11.2 模型finetune
  6. 思科PVLAN配置详解
  7. 面试必考:秒杀系统要如何设计?
  8. 2017南京大学计算机考研答案,全新栏目!【真题解锁】第1期 | 实验设计:南京大学2017年学硕考题...
  9. 超详细centos7安装Oracle11g(图文结合)
  10. web前端全栈0基础到精通(祺)11