微信小程序实现签字功能
效果展示
准备工作
1.canvas的使用
主要用到了bindtouchstart,bindtouchmove两个属性,捕捉手指移动的同时,将移动前的坐标和移动后的坐标用canvas的画图api绘制出来
2.wx.createCanvasContext
这个api用于创建并获取指定canvas对象
代码说明
在wxml中声明一个canvas
指定canvas-id和触摸开始和移动函数
初始化canvas
onShow:function(){
constcontext=wx.createCanvasContext('firstCanvas')
this.setData({
context:context
})
context.draw()
},
给手指触摸绑定函数
//开始触摸
bindtouchstart:function(e){
console.log("bindtouchstart",e);
this.data.context.moveTo(e.changedTouches[0].x,e.changedTouches[0].y)
},
//触摸移动
bindtouchmove:function(e){
console.log("bindtouchstart",e);
this.data.context.lineTo(e.changedTouches[0].x,e.changedTouches[0].y);
this.data.context.stroke();
this.data.context.draw(true);
this.data.context.moveTo(e.changedTouches[0].x,e.changedTouches[0].y);
},
具体代码
index.wxml
清除 提交
index.js
Page({
data:{
context:null,
imgUrl:""
},
/**记录开始点*/
bindtouchstart:function(e){
this.data.context.moveTo(e.changedTouches[0].x,e.changedTouches[0].y)
},
/**记录移动点,刷新绘制*/
bindtouchmove:function(e){
this.data.context.lineTo(e.changedTouches[0].x,e.changedTouches[0].y);
this.data.context.stroke();
this.data.context.draw(true);
this.data.context.moveTo(e.changedTouches[0].x,e.changedTouches[0].y);
},
/**清空画布*/
clear:function(){
this.data.context.draw();
},
/**导出图片*/
export:function(){
constthat=this;
this.data.context.draw(false,wx.canvasToTempFilePath({
x:0,
y:0,
fileType:'jpg',
canvasId:'firstCanvas',
success(res){
const{
tempFilePath
}=res;
that.setData({
imgUrl:tempFilePath,
})
},
fail(){
wx.showToast({
title:'导出失败',
icon:'none',
duration:2000
})
}
}))
},
onShow:function(){
constcontext=wx.createCanvasContext('firstCanvas')
this.setData({
context:context
})
context.draw()
},
})
总结
以上所述是小编给大家介绍的微信小程序实现签字功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。