canvas 기반 핸드폰 서명(vue)
그 중에서 원 리 는 비교적 간단 하 다.선생 은 canvas 캔버스 가 되 어 canvas 에 대해 touch start 와 touch move 사건 을 감청 한다.터치 스타트 이 벤트 를 감청 할 때,canvas 의 beginPath 이 벤트 를 촉발 하고 moveto 원본 을 설정 합 니 다.touchmove 사건 을 감청 하면 lineTo 사건 을 계속 촉발 하고 마지막 으로 stroke().
demo 에는 서명 을 지우 고 서명 을 저장 하 는 기능 도 있 는데 각각 clearRect()와 toDataURL()방법 에 대응 합 니 다.
구체 적 인 demo 코드 는 다음 과 같 습 니 다.
<template>
<div>
<canvas id="canvas" width="300" height="150">
</canvas>
<div class="btn">
<span @click="toClear()"> </span>
<span @click="toSave()"> </span>
</div>
</div>
</template>
<script>
export default {
name: "sign-name",
data(){
return {
ctx:null,
canvas:null
}
},
mounted() {
this.initPage()
},
methods:{
initPage() {
this.canvas = document.getElementById('canvas')
if(this.canvas.getContext){
this.ctx = this.canvas.getContext('2d')
let background = "#ffffff"
this.ctx.lineCap = 'round'
this.ctx.fillStyle = background
this.ctx.lineWidth = 2
this.ctx.fillRect(0,0,350,150)
this.canvas.addEventListener("touchstart",(e)=>{
console.log(123,e)
this.ctx.beginPath()
this.ctx.moveTo(e.changedTouches[0].pageX,e.changedTouches[0].pageY)
})
this.canvas.addEventListener("touchmove",(e)=>{
this.ctx.lineTo(e.changedTouches[0].pageX,e.changedTouches[0].pageY)
this.ctx.stroke()
})
}
},
toClear() {
this.ctx.clearRect(0,0,300,150)
},
toSave() {
let base64Img = this.canvas.toDataURL()
console.log(123,base64Img)
}
}
}
</script>
<style lang="scss" scoped>
.btn {
height: px2Vw(55);
position: fixed;
bottom: 0;
line-height: px2Vw(55);
border-top: px2Vw(1) solid #f7f8f9;
span {
display: inline-block;
width: px2Vw(185);
text-align: center;
}
}
canvas {
position: fixed;
border: 2px dashed #cccccc;
float: right;
}
</style>
코드 가 실 행 된 후의 효과 도 는 다음 과 같다.이것 은 단지 간단 한 demo 일 뿐,틀림없이 고려 하지 않 은 부분 이 많 을 것 이다demo 다운로드 주소
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Fastapi websocket 및 vue 3(Composition API)1부: FastAPI virtualenv 만들기(선택 사항) FastAPI 및 필요한 모든 것을 다음과 같이 설치하십시오. 생성main.py 파일 및 실행 - 브라우저에서 이 링크 열기http://127.0.0.1:...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.