最新vue项目添加水印
在utils文件夹中创建 wartermark.ts 文件(位置看自己的组件放那,这都行),内容如下:
1 "use strict";
2
3 const setWatermark = (str: any) => {
4 const id = "1.23452384164.123412416";
5
6 if (document.getElementById(id) !== null) {
7 document.body.removeChild(document.getElementById(id) as any);
8 }
9
10 //创建一个画布
11 const can = document.createElement("canvas");
12 //设置画布的长宽
13 can.width = 250;
14 can.height = 120;
15
16 const cans: any = can.getContext("2d");
17 //旋转角度
18 cans.rotate((-15 * Math.PI) / 150);
19 cans.font = "18px Vedana";
20 //设置填充绘画的颜色、渐变或者模式
21 cans.fillStyle = "rgba(200, 200, 200, 0.30)";
22 //设置文本内容的当前对齐方式
23 cans.textAlign = "left";
24 //设置在绘制文本时使用的当前文本基线
25 cans.textBaseline = "Middle";
26 //在画布上绘制填色的文本(输出的文本,开始绘制文本的X坐标位置,开始绘制文本的Y坐标位置)
27 cans.fillText(str, can.width / 8, can.height / 2);
28
29 const div = document.createElement("div");
30 div.id = id;
31 div.style.pointerEvents = "none";
32 div.style.top = "35px";
33 div.style.left = "0px";
34 div.style.position = "fixed";
35 div.style.zIndex = "100000";
36 div.style.width = document.documentElement.clientWidth + "px";
37 div.style.height = document.documentElement.clientHeight + "px";
38 div.style.background =
39 "url(" + can.toDataURL("image/png") + ") left top repeat";
40 document.body.appendChild(div);
41 return id;
42 };
43 const watermark = {
44 // 该方法只允许调用一次
45 set: (str: any) => {
46 let id = setWatermark(str);
47 setInterval(() => {
48 if (document.getElementById(id) === null) {
49 id = setWatermark(str);
50 }
51 }, 500);
52 window.onresize = () => {
53 setWatermark(str);
54 };
55 }
56 }
57 export default watermark;
2、在API.vue文件中引用 wartermark.ts
1 <script lang="ts">
2 import './assets/styles/base.scss'
3 import { Component, Vue } from 'vue-property-decorator'
4 import { theme, getQueryString } from '@/utils/util'
5 import logoutUrl from '@/utils/api/logoutUrl'
6
7 import Watermark from '@/utils/main/wartermark';
8
9 export default class App extends Vue {
10 mounted () {
11 Watermark.set("水印内容")
12 }
13
14 }
15 </script>
最新vue项目添加水印的更多相关文章
- Vue项目开发最新、最全代码规范文档
Vue项目开发最新.最全代码规范文档 2019年02月21日 10:43:49 yw00yw 阅读数 337 一. 目录结构 |— build 构建脚本目录 |— build.js 生产环境构建( ...
- vue-cli快速构建Vue项目
vue-cli是什么? vue-cli 是vue.js的脚手架,用于自动生成vue.js模板工程的. vue-cli怎么使用? 安装vue-cli之前,需要先装好vue 和 webpack npm i ...
- 如何快速把 Vue 项目升级到 webpack3
由于 webpack3升级后,新增了 Scope Hositing(作用域提升) 功能,据说是对 js的性能提升很大.因此,我们做了一个测试对比,就是 webpack3和 webpack1/2 的性能 ...
- cordova+vue 项目打包成Android(apk)应用
现在使用vue开发的项目越来越多,使用vue开发的移动端打包就成了最大的问题.现在前端打包方案有好多种,但是综合来说,我比较喜欢用cordova来进行Android和ios的打包,配置完成之后,每次只 ...
- 搭建vue项目环境
前言 在开发本项目之前,我对vue,react,angular等框架了解,仅限于知道它们是什么框架,他们的核心是什么,但是并没有实际使用过(angular 1.0版本用过,因为太难用,所以对这类框架都 ...
- vue项目中的常见问题
总结了几个vue项目开发过程中遇到的常见问题,希望大家注意. 注:文末有福利! 一.样式问题 1.vue中使用less 安装less依赖 npm install less less-loader -- ...
- 原有vue项目接入typescript
原有vue项目接入typescript 为什么要接入typescript javascript由于自身的弱类型,使用起来非常灵活. 这也就为大型项目.多人协作开发埋下了很多隐患.如果是自己的私有业务倒 ...
- element-ui和npm、webpack、vue-cli搭建Vue项目
一.element-ui的简单使用 1.安装 1. npm 安装 推荐使用 npm 的方式安装,它能更好地和 webpack 打包工具配合使用. npm i element-ui -S 2. CDN ...
- rem的在vue项目中使用配置,,浏览器的兼容性之Mate标签
在vue中配置rem 位置:在APP.vue的script中,在export default之外 (()=>{ let winW = document.documentElement.clien ...
随机推荐
- eclipse 设置默认编码为Utf-8 详细教程。
需要设置的几处地方为: Window->Preferences->General ->Content Type->Text->JSP 最下面设置为UTF-8 Window ...
- C# Beanstalkd Client
http://bestmike007.com/Beanstalkd.Client/ Other Message Queue http://queues.io
- github travis-ci持续部署hexo博客
引言 目前我的博客源码是在coding上的,因为有很方便的持续部署,但是coding目前还不提供push文件的开放API. 因为最近做了一个一键分发平台,将博客分发到简书.CSDN等等的平台,但是我的 ...
- 搭建好lnmp后,使用浏览器访问,出现404 Not Found
出现404 Not Found的原因是nginx指向页面不存在,编辑nginx配置文件,修改nginx指向页面路径 root html; 修改为 root /usr/share/nginx/html; ...
- uni-app 修改富文本信息中的图片样式
var richtext= res.data.data.richtext; const regex = new RegExp('<img', 'gi'); richtext= richtext. ...
- vue3.0 加载json的“另类”方法(非ajax)
问题 加载json一定要用ajax的方式吗? 最近学习vue3.0,在实现一个功能的时候发现一个问题-- 写代码的时候,需要的json太长.太多,和代码放在一起太混乱.看代码总有翻来翻去,又没有&qu ...
- Java8 Strean api
Stream 遍历数据集的高级迭代器.使用StreamApi让代码: 声明式:更简洁,更易读: 可复合:更灵活: 可并行:性能更好: 使用流 流的使用一般包括三件事: 一个数据源(如集合)来执行一个查 ...
- Activiti7 绑定业务主键以及流程定义 流程实例的挂起和激活
绑定业务主键businessKey /** * 绑定业务主键 */ @Test public void bindingBusinessKey() { // 获取RuntimeService Runti ...
- Mybatis源码学习第七天(插件开发原理)
插件概述: 插件是用来改变或者扩展mybatis的原有功能,mybatis的插件就是通过继承Interceptor拦截器实现的,在没有完全理解插件之前j禁止使用插件对mybatis进行扩展,有可能会导 ...
- 字符串split的用法
拆分字符串:张三:20|李四:40|王五:40 这个可以使用两次分割,第一次使用 | 分割,放到arr数组里,然后使用循环对arr[i]进行使用:分割 public static void main( ...