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

微信小程序?qū)崿F(xiàn)手指觸摸畫板

 更新時間:2018年07月09日 15:27:43   作者:a_靖  
這篇文章主要為大家詳細介紹了微信小程序?qū)崿F(xiàn)手指觸摸畫板,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了微信小程序?qū)崿F(xiàn)手指觸摸畫板的具體代碼,供大家參考,具體內(nèi)容如下

先看效果圖:

wxml

<!--pages/shouxieban/shouxieban.wxml-->
<view class="container">
 <view>手寫板(請在下方區(qū)域手寫內(nèi)容)</view>
 <canvas style="width: {{canvasw}}px; height: {{canvash}}px" class="canvas" id="canvas" canvas-id="canvas" disable-scroll="true" bindtouchstart="canvasStart" bindtouchmove="canvasMove" bindtouchend="canvasEnd" touchcancel="canvasEnd" binderror="canvasIdErrorCallback"></canvas>
 <view class='btns canvaspd'>
 <button bindtap="cleardraw">清除畫板</button>
 <button bindtap="setSign">確定</button>
 </view>
 <image src='{{canvasimgsrc}}'></image> 
</view>

js

var context = null;// 使用 wx.createContext 獲取繪圖上下文 context
var isButtonDown = false;//是否在繪制中
var arrx = [];//動作橫坐標
var arry = [];//動作縱坐標
var arrz = [];//總做狀態(tài),標識按下到抬起的一個組合
var canvasw = 0;//畫布寬度
var canvash = 0;//畫布高度
// pages/shouxieban/shouxieban.js
Page({
 /**
 * 頁面的初始數(shù)據(jù)
 */
 data: {
 //canvas寬高
 canvasw: 0,
 canvash: 0,
 //canvas生成的圖片路徑
 canvasimgsrc: ""
 },
 //畫布初始化執(zhí)行
 startCanvas: function () {
 var that = this;
 //創(chuàng)建canvas
 this.initCanvas();
 //獲取系統(tǒng)信息
 wx.getSystemInfo({
  success: function (res) {
  canvasw = res.windowWidth - 0;//設備寬度
  canvash = canvasw;
  that.setData({ 'canvasw': canvasw });
  that.setData({ 'canvash': canvash });
  }
 });
 
 },
 //初始化函數(shù)
 initCanvas: function () {
 // 使用 wx.createContext 獲取繪圖上下文 context
 context = wx.createCanvasContext('canvas');
 context.beginPath()
 context.setStrokeStyle('#000000');
 context.setLineWidth(4);
 context.setLineCap('round');
 context.setLineJoin('round');
 },
 //事件監(jiān)聽
 canvasIdErrorCallback: function (e) {
 console.error(e.detail.errMsg)
 },
 canvasStart: function (event) {
 isButtonDown = true;
 arrz.push(0);
 arrx.push(event.changedTouches[0].x);
 arry.push(event.changedTouches[0].y);
 
 },
 canvasMove: function (event) {
 if (isButtonDown) {
  arrz.push(1);
  arrx.push(event.changedTouches[0].x);
  arry.push(event.changedTouches[0].y);
 
 };
 
 for (var i = 0; i < arrx.length; i++) {
  if (arrz[i] == 0) {
  context.moveTo(arrx[i], arry[i])
  } else {
  context.lineTo(arrx[i], arry[i])
  };
 
 };
 context.clearRect(0, 0, canvasw, canvash);
 
 context.setStrokeStyle('#000000');
 context.setLineWidth(4);
 context.setLineCap('round');
 context.setLineJoin('round');
 context.stroke();
 
 context.draw(false);
 },
 canvasEnd: function (event) {
 isButtonDown = false;
 },
 //清除畫布
 cleardraw: function () {
 //清除畫布
 arrx = [];
 arry = [];
 arrz = [];
 context.clearRect(0, 0, canvasw, canvash);
 context.draw(true);
 },
 //提交簽名內(nèi)容
 setSign: function () {
 var that = this;
 if (arrx.length == 0) {
  wx.showModal({
  title: '提示',
  content: '簽名內(nèi)容不能為空!',
  showCancel: false
  });
  return false;
 };
 console.log("不是空的,canvas即將生成圖片")
 //生成圖片
 wx.canvasToTempFilePath({
  canvasId: 'canvas',
  success: function (res) {
  console.log("canvas可以生成圖片")
  console.log(res.tempFilePath, 'canvas圖片地址');
  that.setData({ canvasimgsrc: res.tempFilePath })
  //code 比如上傳操作
 
  },
  fail: function () {
  console.log("canvas不可以生成圖片")
  wx.showModal({
   title: '提示',
   content: '微信當前版本不支持,請更新到最新版本!',
   showCancel: false
  });
  },
  complete: function () {
 
  }
 })
 
 },
 /**
 * 生命周期函數(shù)--監(jiān)聽頁面加載
 */
 onLoad: function (options) {
 //畫布初始化執(zhí)行
 this.startCanvas();
 
 }
})

css

/* pages/shouxieban/shouxieban.wxss */
/*手寫板 */
page{
 background: #f6f6f6;
 padding: 5px auto
}
canvas{
 border: 1px solid #d0d0d0;
 margin: 5rpx;
 background: #f2f2f2
}

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

相關(guān)文章

  • 深入理解Javascript中的valueOf與toString

    深入理解Javascript中的valueOf與toString

    javascript中所有數(shù)據(jù)類型都擁有valueOf和toString這兩個方法,null除外。它們倆解決javascript值運算與顯示的問題,本文將詳細介紹,有需要的朋友可以參考下
    2017-01-01
  • JavaScript簡單計算人的年齡示例

    JavaScript簡單計算人的年齡示例

    這篇文章主要介紹了JavaScript簡單計算人的年齡,涉及簡單的javascript字符串轉(zhuǎn)換及日期運算相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04
  • JavaScript中5個重要的Observer函數(shù)小結(jié)

    JavaScript中5個重要的Observer函數(shù)小結(jié)

    瀏覽器為開發(fā)者提供了功能豐富的Observer,本文主要介紹了JavaScript中5個重要的Observer函數(shù)小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2024-01-01
  • 利用JS實現(xiàn)機器人總動員小游戲

    利用JS實現(xiàn)機器人總動員小游戲

    這篇文章主要介紹了如何利用HTML+CSS+JS編寫一個機器人總動員小游戲,代碼簡單易懂對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-11-11
  • JS立即執(zhí)行的匿名函數(shù)用法分析

    JS立即執(zhí)行的匿名函數(shù)用法分析

    這篇文章主要介紹了JS立即執(zhí)行的匿名函數(shù),結(jié)合實例形式分析了;(function() {})();相關(guān)原理、使用技巧及操作注意事項,需要的朋友可以參考下
    2019-11-11
  • JavaScript轉(zhuǎn)換農(nóng)歷類實現(xiàn)及調(diào)用方法

    JavaScript轉(zhuǎn)換農(nóng)歷類實現(xiàn)及調(diào)用方法

    農(nóng)歷是日常生活中不可或缺的一部分,它與人類的生活息息相關(guān),從某種程度上說,它一直伴隨著我們,今天的任務是JavaScript轉(zhuǎn)換農(nóng)歷類的實現(xiàn),感興趣的你可以千萬不要錯過,希望本文對你有所幫助
    2013-01-01
  • 淺談js中字符和數(shù)組一些基本算法題

    淺談js中字符和數(shù)組一些基本算法題

    下面小編就為大家?guī)硪黄獪\談js中字符和數(shù)組一些基本算法題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-08-08
  • Cropper.js進階之裁剪后保存至服務器實現(xiàn)詳解

    Cropper.js進階之裁剪后保存至服務器實現(xiàn)詳解

    這篇文章主要為大家介紹了Cropper.js進階之裁剪后保存至服務器實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • javascript自定義加載loading效果

    javascript自定義加載loading效果

    這篇文章主要為大家詳細介紹了javascript自定義加載loading效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-09-09
  • js中json處理總結(jié)之JSON.parse

    js中json處理總結(jié)之JSON.parse

    parse是解析json數(shù)據(jù)多種方法中的其中一種。這篇文章主要介紹了js中json處理總結(jié)之JSON.parse,需要的朋友可以參考下
    2016-10-10

最新評論