vue 水印插件


插件:

directives.js

import Vue from 'vue'
/**
* author: zuokun
* 水印
* text:水印文字
* font:字体
* textColor:文字颜色
* width:宽度
* height:高度
* textRotate:偏转度 -90到0, 负数值,不包含-90
*/
Vue.directive('watermark',(el,binding)=>{
let text = binding.value.text;
let font = binding.value.font || "16px Microsoft JhengHei";
let textColor = binding.value.textColor || "rgba(215, 215, 215, 0.2)";
let width = binding.value.width || 400;
let height = binding.value.height || 200;
let textRotate = binding.value.textRotate||-20; function addWaterMarker(parentNode){
var can = document.createElement('canvas');
parentNode.appendChild(can);
can.width = width;
can.height = height;
can.style.display = 'none';
var cans = can.getContext('2d');
cans.rotate(textRotate * Math.PI / 180);
cans.font = font;
cans.fillStyle = textColor ;
cans.textAlign = 'left';
cans.textBaseline = 'Middle';
cans.fillText(text, 0, can.height);
parentNode.style.backgroundImage = "url(" + can.toDataURL("image/png") + ")";
}
addWaterMarker(el)
})

使用:

1.引入:

import  '@/utils/directives.js';

2.设置配置:

watermarkConfig:{//水印
text:'测试水印',
font:'20px 微软雅黑',
textColor:'#bcbcbc',
width : 150, //水印文字的水平间距
height : 100, //水印文字的高度间距(低于文字高度会被替代)
extRotate : -30 //-90到0, 负数值,不包含-90
},

3.页面使用:

<div  v-watermark="watermarkConfig">
</div>

效果:


页面完整代码:

<template>
<div id="test">
<div class="bodydiv" v-watermark="watermarkConfig"> </div>
</div>
</template> <script>
import Vue from 'vue';
import '@/utils/directives.js';
export default {
data() {
return {
watermarkConfig:{//水印
text:'测试水印',
font:'20px 微软雅黑',
textColor:'#bcbcbc',
width : 150, //水印文字的水平间距
height : 100, //水印文字的高度间距(低于文字高度会被替代)
extRotate : -30 //-90到0, 负数值,不包含-90
},
}
},
methods: { },
created() { //初始化加载 },
mounted() { //加载完成回调 },
}
</script> <style>
#test .bodydiv {
width: 100%;
height:1000px;
}
</style>

结束

vue 水印插件的更多相关文章

  1. wordpress图片水印插件DX-Watermark

    DX-Watermark是一款功能齐全的wordpress图片水印插件,可以自动给上传的图片添加文本或者图片水印. 后台截图: 文本水印: 图片水印: 选项说明: 类型:可选择文本或图片水印两种类型, ...

  2. jquery水印插件:placeholder

    jquery水印插件:placeholder 有的浏览器支持html5的水印placeholder(如Crome,firefox,ie10+),有的不支持html5的placeholder(ie9,i ...

  3. 写一个Vue loading 插件

    什么是vue插件? 从功能上说,插件是为Vue添加全局功能的一种机制,比如给Vue添加一个全局组件,全局指令等: 从代码结构上说,插件就是一个必须拥有install方法的对象,这个方法的接收的第一个参 ...

  4. Vue自定义插件方法大全

    新年第一天首先祝大家新年快乐,心想事成! 1.利用根实例构造函数的原型 //在构造函数的原型链上添加自定义属性 Vue.prototype.test = 'pomelo' //在其他组件中调用 con ...

  5. vue各种插件汇总

    https://blog.csdn.net/wh8_2011/article/details/80497620(copy) Vue是什么? Vue.js(读音 /vjuː/, 类似于 view) 是一 ...

  6. vue.js及项目实战[笔记]— 03 vue.js插件

    一. vue补充 1. 获取DOM元素 救命稻草,document.querySelector 在template中标示元素`ref = "xxx" 在要获取的时候,this.$r ...

  7. VUE图片懒加载-vue lazyload插件的简单使用

    序:vue项目时候,我们要对图片进行懒加载处理,这个开发项目中就不需要自己去写了,因为比较方便使用vue lazyload进行处理,高效率开发 一. vue lazyload插件: 插件地址:http ...

  8. vue常用插件汇总

    UI-框架element - 饿了么出品的Vue2的web UI工具套件 mint-ui - Vue 2的移动UI元素 iview - 基于 Vuejs 的开源 UI 组件库 Keen-UI - 轻量 ...

  9. chrome浏览器的VUE调试插件Vue.js devtools

      chrome浏览器的VUE调试插件Vue.js devtools 应用商店直接安装 安装成功后在VUE文件打开可以直接调试: 提示效果如下: F12进入调试状态即可: 安装中出现的问题: 插件安装 ...

  10. 开发vue全局插件的4种方式

    定义全局插件的步骤 定义全局插件 pluginsUtil.js Vue.js 的插件应当有一个公开方法 install .这个方法的第一个参数是 Vue 构造器,第二个参数是一个可选的选项对象: ex ...

随机推荐

  1. 如何使用C++ STL中的链表list

    1.声明链表 list<数据类型> 链表名称: 比如: list<int> listName;  //创建一个空链表listName list<int> listN ...

  2. G1原理—10.如何优化G1中的FGC

    大纲 1.G1的FGC可以优化的点 2.一个bug导致的FGC(Kafka发送重试 + subList导致List越来越大) 3.为什么G1的FGC比ParNew + CMS要更严重 4.FGC的一些 ...

  3. 隐私集合求交(PSI)-多方

    本文主要讲解一个多方的PSI协议,文章转载:隐私计算关键技术:多方隐私集合求交(PSI)从原理到实现以及多方隐私求交--基于OPPRF的MULTI-PARTY PSI:原论文:Practical Mu ...

  4. C#使用yield关键字提升迭代性能与效率

    前言 yield关键字在C#中简化了数据迭代的方式,实现了按需生成数据,自动维护迭代状态,减少了内存占用,并允许在迭代时执行复杂逻辑. 传统迭代和yield迭代方式对比 咱们来看看传统迭代方式和yie ...

  5. dart集合list方法详解

    List数组有两种声明方式: 01==>List 常用的属性==> length 计算数组的长度 reversed 数组翻转 isEmpty 是否为空 isNotEmpty 是否不为空 L ...

  6. 打造有效安全闭环,天翼云MDR来了!

    随着网络攻-防对抗形势愈演愈烈,传统的安全防护模式已难以应对频率暴增.昼夜不停的网络安全攻-击,提升组织安全防护能力势在必行.事实上,一些单位在网络安全建设工作中经验不足,在安全组件/设备采购方面大量 ...

  7. 这期没有 AI 开源项目「GitHub 热点速览」

    最近 GitHub 上的 AI 开源项目扎堆,几乎到了"刷屏"的程度.所以这次我们换个口味,来看看那些非 AI.有趣的开源项目! Rust 不好学呀!尤其是所有权和生命周期这些概念 ...

  8. C# 心跳检测实现

    原文链接: https://blog.csdn.net/yupu56/article/details/72356700 TCP网络长连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以 ...

  9. Vue 组件里添加键盘事件 keydown keyup不生效问题

    我在使用VueDraggableResizable制作一个窗口,然后需要点击esc关闭窗口. 但是键盘事件没有生效,写任何位置都不行. 解决方案 在需要触发esc事件的div或其他上给出 tabind ...

  10. 设计原则&模式:原型模式 Prototype(创建型)

    定义:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象.也就是说,这种不通过new关键字来产生一个对象,而是通过对象复制(Java中的clone或反序列化)来实现的模式,就叫做原型模式. ...