zoukankan      html  css  js  c++  java
  • vue 水印插件

    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>

    结束

  • 相关阅读:
    BZOJ5212 ZJOI2018历史(LCT)
    BZOJ5127 数据校验
    253. Meeting Rooms II
    311. Sparse Matrix Multiplication
    254. Factor Combinations
    250. Count Univalue Subtrees
    259. 3Sum Smaller
    156. Binary Tree Upside Down
    360. Sort Transformed Array
    348. Design Tic-Tac-Toe
  • 原文地址:https://www.cnblogs.com/zktww/p/14139206.html
Copyright © 2011-2022 走看看