IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue使用canvas实现手写电子签名;vue使用vue-esign插件实现手写电子签名;H5使用画布签名 -> 正文阅读

[JavaScript知识库]vue使用canvas实现手写电子签名;vue使用vue-esign插件实现手写电子签名;H5使用画布签名

功能:
1.兼容 PC 和 Mobile;
2.画布自适应屏幕大小变化(窗口缩放、屏幕旋转时画布无需重置,自动校正坐标偏移);
3.自定义画布尺寸(导出图尺寸),画笔粗细、颜色,画布背景色;
4.支持裁剪 (针对需求:有的签字需要裁剪掉四周空白)。
5.导出图片格式为 base64
6.原博地址,本文在原博基础修改,代码在博尾。

签名效果:
在这里插入图片描述

一、安装插件

npm install vue-esign --save

二、在.vue页面引入使用

import Vue from "vue"
import vueEsign from 'vue-esign'
Vue.use(vueEsign)

三、注意事项

1.必须设置 ref ,用来调用组件的两个内置方法,清空画布 reset() 和 导出图片generate()
2.画布默认是宽高800*300,且宽度是不会超过父元素的宽度的

属性类型默认值说明
widthNumber800画布宽度,即导出图片的宽度
heightNumber300画布高度,即导出图片的高度
lineWidthNumber4画笔粗细
lineColorString#000000画笔颜色
bgColorString画布背景色,为空时画布背景透明,支持多种格式 ‘#ccc’,’#E5A1A1’,‘rgb(229, 161, 161)’,‘rgba(0,0,0,.6)’,‘red’
isCropBooleanfalse是否裁剪,在画布设定尺寸基础上裁掉四周空白部分
isClearBgColorBooleantrue清空画布reset时,是否清空背景色bgColor

四、以下代码可直接复制(有效的话点赞支持一波吧)

<template>
  <div style="margintop:30px;">

    <div>
      <div style="margin-bottom:20px;">
        <span>画笔粗细:</span>
        <el-select style="width:100px;" v-model="lineWidth" placeholder="请选择">
          <el-option :label="1" :value="1"></el-option>
          <el-option :label="3" :value="3"></el-option>
          <el-option :label="6" :value="6"></el-option>
        </el-select>

        <span>画笔颜色:</span>
        <!-- input颜色回显必须要六位的颜色值 -->
        <input v-model="lineColor" type="color" placeholder="" placeholder-class="input-placeholder" />

        <span>画布背景:</span>
        <input v-model="bgColor" type="color" placeholder="" placeholder-class="input-placeholder" />

        <span>是否裁剪:</span>
        <input v-model="isCrop" type="checkbox" name="">

      </div>

      <vue-esign style="border: 1px solid #ddd;" ref="esign" :width="canWidth" :height="canHeight" :isCrop="isCrop" :lineWidth="lineWidth" :lineColor="lineColor" :bgColor.sync="bgColor" :isClearBgColor="isClearBgColor" />
      <button @click="handleReset">清空画板</button>
      <button @click="handleGenerate">生成图片</button>
    </div>

    <div>
      <img style="float:left;" :src="resultImg" alt="">
    </div>

  </div>
</template>

<script>
import Vue from "vue"
import vueEsign from 'vue-esign'
Vue.use(vueEsign)

export default {
  data () {
    return {
      canWidth: 800,//画布宽度--是不会超出父元素的宽度的--设置也不行
      canHeight: 300,

      lineWidth: 3,//画笔粗细
      lineColor: '#000000',//画笔颜色
      bgColor: '#ffffff',//画布背景
      isCrop: false,//是否裁剪
      isClearBgColor: true,//是否清空背景色

      resultImg: '',//生成签名图片-base64
    }
  },
  methods: {
    handleReset () {
      // console.log(this.$refs.esign.$el)
      // console.log(this.$refs.esign)

      this.$refs.esign.reset()//清空画布内容

      this.lineWidth = 3
      this.lineColor = '#000000'
      this.bgColor = '#ffffff'
      this.isCrop = false
      this.resultImg = ''
    },
    handleGenerate () {
      this.$refs.esign.generate().then(res => {
        console.log('图片的base64地址', res)
        console.log(this.$refs.esign)
        this.resultImg = res
      }).catch(err => {
        console.log('画布没有签字时', err)
        alert('请先完成签字!') // 画布没有签字时会执行这里 'Not Signned'
      })
    }
  }

}
</script>

<style>
</style>
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 11:46:33  更:2022-10-31 11:47:26 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 16:43:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码