首页 > 其他分享 >Vue添加页面水印(自定义指令)

Vue添加页面水印(自定义指令)

时间:2022-09-20 10:27:02浏览次数:76  
标签:Vue 自定义 binding value height let 水印 font cans

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)
})

html代码使用如下:

<div v-watermark="{
        text: '水印文字',
        font: "20px 微软雅黑",
        textColor: "rgba(238,238,238,0.8)",
        textRotate: -30, //-90到0, 负数值,不包含-90
}"></div>

  

标签:Vue,自定义,binding,value,height,let,水印,font,cans
From: https://www.cnblogs.com/shaoyunfeng93/p/16710101.html

相关文章

  • 前端-VUE实现第三方登录
    实现流程点击第三方登录按钮:执行window.open方法,打开一个第三方指定url出口,该地址会指向第三方登录url,并且由第三方提供一个对应的二维码弹出一个小窗口,展示对应二维码:......
  • Vue 系统组件 <Teleport> 简介rr
    <Teleport>传递组件@说明:将组件内的一部份模板传送到组件外层对象上,且不影响整个组件逻辑。 <Teleportto=""display=""></Teleport> 属性:to[必需String|H......
  • Vue面试题19:在实际开发过程中,你知道的Vue最佳实践有哪些?(总结自B站up主‘前端杨村长’
    思路:查看vue官方文档:风格指南(重点关注AB级)、最佳实践(生产部署、性能、访问、安全)回答范例从编码风格、性能、安全等方面说几条:1.编码风格方面:命名组件时使用“多词"......
  • 学习vue3-先抄写文档
      当style标签带有scopedattribute的时候,它的css只会影响当前组件的元素。它的实现方式是通过PostCSS将当前组件添加属性,css选择器都添加对应属性选择器。子组......
  • 如何使用Vue原生组件编译应用程序主题?这个工具不要错过
    KendoUI致力于新的开发,来满足不断变化的需求。KendoUIforVue使用旨在提高性能和丰富用户体验的Vue组件,帮助开发人员构建下一代应用程序。它是为Vue技术框架提供可用的K......
  • vue安装与使用
    1、查看node是否安装:   node-v如果没有安装  就去安装node   2、查看npm是否安装   npm-v 如果没有安装  就去安装npm   3、创建项目......
  • react useMemo、useEffect和 useCallback区别及与 vue 对比
    reactuseMemo和useEffect和useCallbackuseEffecteffect只能在DOM更新后触发useMemo传入useMemo的函数会在渲染期间执行,即在DOM更新前触发的,就像官方所说的,类比......
  • vue3 watch和 watchEffect对比
    watch和watchEffectwatchwatch显式指定依赖数据,依赖数据更新时执行回调函数具有一定的惰性(lazy),第一次页面展示的时候不会执行,只有数据变化的时候才会执行(设置i......
  • Java自定义类创建对象数组并赋值
    以下代码执行会报错。出错代码:publicclassTest{publicstaticvoidmain(String[]args){Person[]P1=newPerson[2];P1[0].setAge(20);......
  • 【Vue】Vue 组件交互(四)
    本例介绍Vue组件交互1、新建Vue项目参考:【Vue】Vue项目搭建(二)2、引入CSSindex页面引入bootstrap.css1<!DOCTYPEhtml>2<html>3<head>4<......