




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第uniapp實(shí)現(xiàn)橫屏簽字版本文實(shí)例為大家分享了uniapp實(shí)現(xiàn)橫屏簽字版的具體代碼,供大家參考,具體內(nèi)容如下
兼容H5、APP、微信小程序
可作為組件直接引入
通過this.$emit(tempFilePath,val.tempFilePath)給予回調(diào)
template
viewv-if="isShow"@touchmove.stop.prevent=""
!--簽字canvas--
canvas
id="mycanvas"
canvas-id="mycanvas"
@touchstart="touchstart"
@touchmove="touchmove"
@touchend="touchend"
/canvas
!--旋轉(zhuǎn)canvas--
canvas
:style="{'z-index':-1,width:`${screenWidth}px`,height:`${(screenWidth*screenWidth)/screenHeight}px`}"
id="rotatCanvas"
canvas-id="rotatCanvas"
/canvas
cover-view
cover-view@tap="finish"保存/cover-view
cover-view@tap="clear"清除/cover-view
cover-view@tap="hide"關(guān)閉/cover-view
/cover-view
/view
/template
script
exportdefault{
data(){
return{
ctx:'',//繪圖圖像
points:[],//路徑點(diǎn)集合
isShow:false,
screenWidth:'',
screenHeight:''
};
},
mounted(){
this.createCanvas();
uni.getSystemInfo({
success:e={
this.screenWidth=e.screenWidth;
this.screenHeight=e.screenHeight;
}
});
},
methods:{
show(){
this.clear();
this.isShow=true;
},
hide(){
this.isShow=false;
},
//創(chuàng)建并顯示畫布
createCanvas(){
this.showCanvas=true;
this.ctx=uni.createCanvasContext('mycanvas',this);//創(chuàng)建繪圖對(duì)象
//設(shè)置畫筆樣式
this.ctx.lineWidth=2;
this.ctx.lineCap='round';
this.ctx.lineJoin='round';
},
//觸摸開始,獲取到起點(diǎn)
touchstart(e){
letstartX=e.changedTouches[0].x;
letstartY=e.changedTouches[0].y;
letstartPoint={
X:startX,
Y:startY
};
this.points.push(startPoint);
//每次觸摸開始,開啟新的路徑
this.ctx.beginPath();
},
//觸摸移動(dòng),獲取到路徑點(diǎn)
touchmove(e){
letmoveX=e.changedTouches[0].x;
letmoveY=e.changedTouches[0].y;
letmovePoint={
X:moveX,
Y:moveY
};
this.points.push(movePoint);//存點(diǎn)
letlen=this.points.length;
if(len=2){
this.draw();//繪制路徑
}
},
//觸摸結(jié)束,將未繪制的點(diǎn)清空防止對(duì)后續(xù)路徑產(chǎn)生干擾
touchend(){
this.points=[];
},
/************************************************
#
繪制筆跡
#
1.為保證筆跡實(shí)時(shí)顯示,必須在移動(dòng)的同時(shí)繪制筆跡
#
2.為保證筆跡連續(xù),每次從路徑集合中區(qū)兩個(gè)點(diǎn)作為起點(diǎn)(moveTo)和終點(diǎn)(lineTo)
#
3.將上一次的終點(diǎn)作為下一次繪制的起點(diǎn)(即清除第一個(gè)點(diǎn))
*************************************************/
draw(){
letpoint1=this.points[0];
letpoint2=this.points[1];
this.points.shift();
this.ctx.moveTo(point1.X,point1.Y);
this.ctx.lineTo(point2.X,point2.Y);
this.ctx.stroke();
this.ctx.draw(true);
},
//清空畫布
clear(){
this.ctx.clearRect(0,0,this.screenWidth,this.screenHeight);
this.ctx.draw(true);
},
//完成繪畫并保存到本地
finish(){
uni.canvasToTempFilePath(
{
canvasId:'mycanvas',
success:res={
this.rotat(res.tempFilePath);
},
complete:com={}
},
this
);
},
//將圖片選裝
rotat(e){
letrotatCtx=uni.createCanvasContext('rotatCanvas',this);//創(chuàng)建繪圖對(duì)象
//重新定位中心點(diǎn)
rotatCtx.translate(0,(this.screenWidth*this.screenWidth)/this.screenHeight);
//將畫布逆時(shí)針旋轉(zhuǎn)90度
rotatCtx.rotate((270*Math.PI)/180);
//將簽字圖片繪制進(jìn)入Canvas
rotatCtx.drawImage(e,0,0,(this.screenWidth*this.screenWidth)/this.screenHeight,this.screenWidth);
//保存后旋轉(zhuǎn)后的結(jié)果
rotatCtx.draw(true);
setTimeout(()={
//生成圖片并回調(diào)
uni.canvasToTempFilePath(
{
canvasId:'rotatCanvas',
success:val={
this.$emit('tempFilePath',val.tempFilePath);
setTimeout(()={
this.hide();
},500);
},
complete:com={
//console.log(com);
}
},
this
);
},500);
}
}
/script
stylelang="scss"scoped
.main-content{
width:100vw;
height:100vh;
background-color:red;
position:fixed;
top:0rpx;
left:0rpx;
z-index:9999;
.mycanvas{
width:100vw;
height:100vh;
background-color:#efefef;
position:fixed;
left:0rpx;
top:0rpx;
z-index:2;
.button-line{
transform:rotate(90deg);
position:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 產(chǎn)科質(zhì)量與安全管理
- 教育學(xué)畢業(yè)設(shè)計(jì)答辯要點(diǎn)解析
- 2025年中國質(zhì)子交換膜燃料電池組項(xiàng)目投資可行性研究報(bào)告
- 2025年中國補(bǔ)充香料市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國蒲公英片數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025年中國船舶用碳鋼無縫鋼管市場(chǎng)調(diào)查研究報(bào)告
- 2025年中國胺鹽珠光漿市場(chǎng)現(xiàn)狀分析及前景預(yù)測(cè)報(bào)告
- 2025年中國納濾組件市場(chǎng)現(xiàn)狀分析及前景預(yù)測(cè)報(bào)告
- 2025年中國粉末吸塵器市場(chǎng)現(xiàn)狀分析及前景預(yù)測(cè)報(bào)告
- 2025年中國空調(diào)專用壓縮機(jī)螺栓市場(chǎng)調(diào)查研究報(bào)告
- 拒絕欺凌與善同行
- 《煤礦環(huán)境保護(hù)》課件
- 不同造林模式對(duì)桉樹人工林林下植物物種多樣性的影響
- 禮盒包裝策劃方案
- 《撓撓小怪獸》小班韻律課件
- 國旗下講話-5月19日助殘日國旗下講話稿:同享一片藍(lán)天
- 童話故事三年級(jí)下冊(cè)350字作文
- 表1網(wǎng)格化治理工作村(居)民基本信息統(tǒng)計(jì)表
- 涂裝工藝流程、PFMEA2018
- 車站信號(hào)自動(dòng)控制教案-四線制道岔控制啟動(dòng)電路
評(píng)論
0/150
提交評(píng)論