zoukankan      html  css  js  c++  java
  • 小程序页面添加水印操作(自定义组件使用)

    1.在根目录创建components文件夹 在components下创建 watermark 文件夹 再在其下面创建page 得到 watermark.js  watermark.json  watermark.wxml  watermark.wxss;

    2. 使用规则在相关页面的json配置文件下配置 usingComponents  即可使用组件如下示例

      "usingComponents": {
        "van-toast": "@vant/weapp/toast/index",
        "van-button": "@vant/weapp/button/index",
        "canvas-watermark": "../../components/watermark/watermark"
      }
    // watermark.js
    Component({
          data: {
            // 这里是一些组件内部数据
            watermarkText: '水印测试'
          },
          attached() {
            // 在组件实例进入页面节点树时执行
            // this.drowsyUserinfo()
            this.setData({
              watermarkText: (wx.getStorageSync('userInfo') || {}).name || '水印测试'
            })
          },
          methods: {
            // 这里是一个自定义方法
            drowsyUserinfo: function () {
                var userInfo = wx.getStorageSync('userInfo') || {};
                var nameText = userInfo.name || '水印测试';
                var ctx = wx.createCanvasContext("myCanvas");
                ctx.rotate(20 * Math.PI / 180); //设置文字的旋转角度,角度为45°;
                //对斜对角线以左部分进行文字的填充
                //用for循环达到重复输出文字的效果,这个for循环代表纵向循环
                for (let j = 1; j < 10; j++) { 
                  ctx.beginPath();
                  ctx.setFontSize(16);
                  ctx.setFillStyle("rgba(0,155,169,.5)");
                  ctx.fillText(nameText, 0, 50 * j);
                  for (let i = 1; i < 10; i++) { //这个for循环代表横向循环
                    ctx.beginPath();
                    ctx.setFontSize(15);
                    ctx.setFillStyle("rgba(0,155,169,.5)");
                    ctx.fillText(nameText, 180 * i, 150 * j);
                  }
                }
                //两个for循环的配合,使得文字充满斜对角线的左下部分
                //对斜对角线以右部分进行文字的填充逻辑同上
                for (let j = 0; j < 10; j++) {
                  ctx.beginPath();
                  ctx.setFontSize(16);
                  ctx.setFillStyle("rgba(0,155,169,.5)");
                  ctx.fillText(nameText, 0, -50 * j);
                  for (let i = 1; i < 10; i++) {
                    ctx.beginPath();
                    ctx.setFontSize(16);
                    ctx.setFillStyle("rgba(0,155,169,.5)");
                    ctx.fillText(nameText, 180 * i, -150 * j);
                  }
                }
                ctx.draw();
            }
        }
    })
    <!-- 水印 -->
    <!-- <view class='water_top' style="pointer-events: none;">
        <slot></slot>
    </view> -->
    
    
    
    <!-- <canvas-watermark>
        <canvas canvas-id='myCanvas' class="canvas-watermark" style="pointer-events: none;"></canvas>
    </canvas-watermark> -->
    
    
    <!-- watermark.wxml只需要这一串 -->
    <view class="water_top" style="pointer-events: none;">
        <view class="water-text">{{watermarkText}}</view>
        <view class="water-text">{{watermarkText}}</view>
        <view class="water-text">{{watermarkText}}</view>
        <view class="water-text">{{watermarkText}}</view>
        <view class="water-text">{{watermarkText}}</view>
        <view class="water-text">{{watermarkText}}</view>
        <view class="water-text">{{watermarkText}}</view>
        <view class="water-text">{{watermarkText}}</view>
    </view>
    /* .water_top {
        position: absolute;
        z-index: 9999;
        opacity: 0.9;
        top: 0;
        bottom: 0;
        height: 100%;
         100%;
      }
      .canvas-watermark{
        height:100%;
         100%;
      } */
    /* watermark.wxss 只需要这个 */ .water_top{ position: fixed; top:0; bottom: 0; left: 0; right: 0; /* background: #999; */ transform:rotate(-10deg); /* opacity: 0.9; */ z-index: 9999999999; } .water-text{ float: left; width:375rpx; color: rgba(169,169,169,.2); text-align: center; font-size: 15px; margin: 120rpx 0; }

    watermark.json文件

    {
      "component": true
    }

    页面内使用标签即可实现自定义组件(页面水印)的使用;

    <!-- 水印 -->
    <canvas-watermark></canvas-watermark>

     原创未经允许不得转载!!!转载请注明出处~谢谢合作;

  • 相关阅读:
    软件包管理
    扩大swap分区
    逻辑卷加密(luks)
    创建一个独立的卷组
    dns视图搭建
    dns服务搭建
    [转]ubuntu错误解决E: Sub-process /usr/bin/dpkg returned an error code (1)
    [转]ubuntu server上网配置
    [转]windows 软链接的建立及删除
    [转]Cygwin的包管理器:apt-cyg
  • 原文地址:https://www.cnblogs.com/lhl66/p/12917217.html
Copyright © 2011-2022 走看看