欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于canvas實(shí)現(xiàn)手寫簽名(vue)

 更新時(shí)間:2020年05月21日 15:40:02   作者:yzbyxmx  
這篇文章主要為大家詳細(xì)介紹了基于canvas實(shí)現(xiàn)簡易的手寫簽名,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

最近一直在研究canvas的東西,正好之前對手寫簽名這塊有點(diǎn)興趣。就自己基于vue寫了一個(gè)簡易的手寫簽名demo。

其中原理比較簡單,先生成一個(gè)canvas畫布,并對canvas進(jìn)行touchstart和touchmove事件進(jìn)行監(jiān)聽。當(dāng)監(jiān)聽touchstart事件被觸發(fā)時(shí),我們開始觸發(fā)canvas里的beginPath事件并且設(shè)置moveTo原始點(diǎn)。當(dāng)監(jiān)聽touchmove事件則去不斷去觸發(fā)lineTo事件,最后stroke()。

demo里還有清除簽名和保存簽名的功能,分別對應(yīng)了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>

代碼運(yùn)行后的效果圖如下:

這只是個(gè)簡易的demo,肯定會有很多未考慮到的地方。demo的下載地址

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue實(shí)現(xiàn)密碼顯示與隱藏按鈕的自定義組件功能

    vue實(shí)現(xiàn)密碼顯示與隱藏按鈕的自定義組件功能

    本文通過兩種思路給大家介紹vue實(shí)現(xiàn)密碼顯示與隱藏按鈕的自定義組件功能,感興趣的朋友跟隨小編一起看看吧
    2019-04-04
  • 淺談vue 多個(gè)變量同時(shí)賦相同值互相影響

    淺談vue 多個(gè)變量同時(shí)賦相同值互相影響

    這篇文章主要介紹了淺談vue 多個(gè)變量同時(shí)賦相同值互相影響,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 淺談vue中resetFields()使用注意事項(xiàng)

    淺談vue中resetFields()使用注意事項(xiàng)

    這篇文章主要介紹了淺談vue中resetFields()使用注意事項(xiàng),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 尤大大新活petite-vue的實(shí)現(xiàn)

    尤大大新活petite-vue的實(shí)現(xiàn)

    打開尤大大的GitHub,發(fā)現(xiàn)多了個(gè)叫 petite-vue 的東西,Vue3 和 Vite 還沒學(xué)完呢,又開始整新東西了?本文就來介紹一下
    2021-07-07
  • vue-video-player 斷點(diǎn)續(xù)播的實(shí)現(xiàn)

    vue-video-player 斷點(diǎn)續(xù)播的實(shí)現(xiàn)

    這篇文章主要介紹了vue-video-player 斷點(diǎn)續(xù)播的實(shí)現(xiàn),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Vue自動生成組件示例總結(jié)

    Vue自動生成組件示例總結(jié)

    在Vue中,我們可以使用unplugin-generate-component-name插件自動基于目錄名稱生成組件名稱,這個(gè)插件使得在大型代碼庫中找到和管理組件更加容易和直觀,這篇文章主要介紹了Vue自動生成組件示例總結(jié),需要的朋友可以參考下
    2023-12-12
  • 分享7個(gè)成為更好的Vue開發(fā)者的技巧

    分享7個(gè)成為更好的Vue開發(fā)者的技巧

    作為使用Vue已經(jīng)很多年的人,特別是去年一直在使用?Vue3,因此,學(xué)到了很多東西。所以本文為大家準(zhǔn)備了7個(gè)讓我們成為更好?Vue?開發(fā)者的技巧,需要的可以參考一下
    2022-06-06
  • vue arco.design錨點(diǎn)Anchor使用方式

    vue arco.design錨點(diǎn)Anchor使用方式

    這篇文章主要介紹了vue arco.design錨點(diǎn)Anchor使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • vue實(shí)現(xiàn)圖片拖動排序

    vue實(shí)現(xiàn)圖片拖動排序

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)圖片拖動排序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 使用Vant如何實(shí)現(xiàn)數(shù)據(jù)分頁,下拉加載

    使用Vant如何實(shí)現(xiàn)數(shù)據(jù)分頁,下拉加載

    這篇文章主要介紹了使用Vant實(shí)現(xiàn)數(shù)據(jù)分頁及下拉加載方式。具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06

最新評論