亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

cropper js基于vue的圖片裁剪上傳功能的實現代碼

2024-05-06 16:42:47
字體:
來源:轉載
供稿:網友

前些日子做了一個項目關于vue項目需要頭像裁剪上傳功能,看了一篇文章,在此基礎上做的修改完成了這個功能,與大家分享一下。原文:http://www.49028c.com/article/135719.htm

首先下載引入cropper js,

npm install cropper js --save

在需要的頁面引入:import Cropper from "cropper js"

html的代碼如下:

<template>  <div id="demo">  <!-- 遮罩層 -->  <div class="container" v-show="panel">  <div>   <img id="image" :src="url" </div>  <button type="button" id="button" @click="commit">確定</button>  <button type="button"id="cancel" @click="cancel">取消</button>  </div>  <div style="padding:20px;">  <div class="show">   <div class="picture" :style="'backgroundImage:url('+headerImage+')'">   </div>  </div>  <div style="margin-top:20px;text-align: left;">   <input type="file" id="change" accept="image" @change="change">   <label for="change"></label>  </div>  </div>  </div> </template> 

主要是js代碼,如下

1,data里面定好初始變量,綁定數據,imgCropperData是我定義的判斷圖片格式的。

data() {  return {  headerImage: "",  picValue: "",  cropper: "",  croppable: false,  panel: false,  url: "",  imgCropperData: {  accept: "image/gif, image/jpeg, image/png, image/jpg"  }  };  } 

2,在mounted里面初始換裁剪框

mounted() {  //初始化這個裁剪框  var self = this;  var image = document.getElementById("image");  this.cropper = new Cropper(image, {  aspectRatio: 1,  viewMode: 1,  background: false,  zoomable: false,  ready: function() {  self.croppable = true;  }  });  } 

3.methods的方法比較多,包括創建URL路徑,input框change事件,canvas畫圖,確定提交上傳。我還加了取消事件函數,判斷上傳文件的類型和大小。

methods: {  //取消上傳  cancel() {  this.panel = false;  var obj = document.getElementById('change') ;  obj.outerHTML=obj.outerHTML;  },  //創建url路徑  getObjectURL(file) {  var url = null;  if (window.createObjectURL != undefined) {  // basic  url = window.createObjectURL(file);  } else if (window.URL != undefined) {  // mozilla(firefox)  url = window.URL.createObjectURL(file);  } else if (window.webkitURL != undefined) {  // webkit or chrome  url = window.webkitURL.createObjectURL(file);  }  return url;  },  //input框change事件,獲取到上傳的文件  change(e) {  let files = e.target.files || e.dataTransfer.files;  if (!files.length) return;  let type = files[0].type; //文件的類型,判斷是否是圖片  let size = files[0].size; //文件的大小,判斷圖片的大小  if (this.imgCropperData.accept.indexOf(type) == -1) {  alert("請選擇我們支持的圖片格式!");  return false;  }  if (size > 5242880) {  alert("請選擇5M以內的圖片!");  return false;  }  this.picValue = files[0];  this.url = this.getObjectURL(this.picValue);  //每次替換圖片要重新得到新的url  if (this.cropper) {  this.cropper.replace(this.url);  }  this.panel = true;  },  //確定提交  commit() {  this.panel = false;  var croppedCanvas;  var roundedCanvas;  if (!this.croppable) {  return;  }  // Crop  croppedCanvas = this.cropper.getCroppedCanvas();  // Round  roundedCanvas = this.getRoundedCanvas(croppedCanvas);  this.headerImage = roundedCanvas.toDataURL();  //上傳圖片  this.postImg();  },  //canvas畫圖  getRoundedCanvas(sourceCanvas) {  var canvas = document.createElement("canvas");  var context = canvas.getContext("2d");  var width = sourceCanvas.width;  var height = sourceCanvas.height;  canvas.width = width;  canvas.height = height;  context.imageSmoothingEnabled = true;  context.drawImage(sourceCanvas, 0, 0, width, height);  context.globalCompositeOperation = "destination-in";  context.beginPath();  context.arc(  width / 2,  height / 2,  Math.min(width, height) / 2,  0,  2 * Math.PI,  true  );  context.fill();  return canvas;  },  //提交上傳函數  postImg() {  alert("上傳成功");  //這邊寫圖片的上傳  }  } 

css樣式代碼就不貼出來了,可以到GitHub上下載https://github.com/leileibrother/cropper-js-vue-。

總結

以上所述是小編給大家介紹的cropper js基于vue的圖片裁剪上傳功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91久久精品国产91久久| 中文国产成人精品| 亚洲一区二区三区乱码aⅴ蜜桃女| 国产成人在线亚洲欧美| 国产精品久久久久不卡| 九色成人免费视频| 成人综合网网址| 欧美日韩成人免费| 国产精自产拍久久久久久蜜| 亚洲另类激情图| 欧美电影免费观看网站| 成人免费午夜电影| 欧美日韩亚洲视频一区| 久久综合五月天| 日韩视频免费观看| 日韩中文字幕国产精品| 91av在线国产| 国产精品国内视频| 日韩精品免费看| 亚洲有声小说3d| 视频在线观看99| 国模精品视频一区二区三区| 国产精品视频网| 亚洲免费高清视频| 亚洲精品按摩视频| 精品国产一区二区三区久久久| 日韩精品一区二区三区第95| 久久久国产一区二区三区| 欧美国产日韩一区二区在线观看| 综合av色偷偷网| 色综合天天狠天天透天天伊人| 成人久久精品视频| 欧美激情精品久久久久久大尺度| 国内精品久久久久久久| 青青草精品毛片| 97久久伊人激情网| 一色桃子一区二区| 亚洲人高潮女人毛茸茸| 成人做爽爽免费视频| 日韩欧美在线播放| 欧美猛男性生活免费| 国模吧一区二区三区| 国产精品直播网红| 亚洲最大福利视频网站| 亚洲精品自在久久| 亚洲午夜激情免费视频| 性欧美长视频免费观看不卡| 91在线色戒在线| 人九九综合九九宗合| 久热爱精品视频线路一| 亚洲第一天堂av| 岛国av在线不卡| 亚洲一区二区在线| 91夜夜揉人人捏人人添红杏| 91影院在线免费观看视频| 欧美激情亚洲综合一区| 国内精品久久久久影院优| 精品女同一区二区三区在线播放| 久久精品国产久精国产一老狼| 国产乱人伦真实精品视频| 在线播放国产一区二区三区| 亚洲天堂av网| 7777精品久久久久久| 国产一区av在线| 亚洲色图av在线| 日韩一区二区福利| 日韩国产一区三区| 91免费精品国偷自产在线| 欧美老女人www| 国产一区二区三区高清在线观看| 亚洲美女av黄| 蜜臀久久99精品久久久久久宅男| y97精品国产97久久久久久| 91人人爽人人爽人人精88v| 国产精品久久久999| 国产精品稀缺呦系列在线| 91a在线视频| 欧美日韩性视频在线| 亚洲影院色在线观看免费| 91精品国产综合久久男男| 国产在线拍偷自揄拍精品| 日韩在线观看你懂的| 亚洲国产免费av| 97免费在线视频| 亚洲精品久久在线| 亚洲精品国产综合区久久久久久久| 欧美日韩性视频| 国产亚洲视频中文字幕视频| 国产精品日韩在线观看| 欧洲永久精品大片ww免费漫画| 亚洲欧美日韩综合| 欧美老少配视频| 美女福利精品视频| 国产欧美日韩最新| 成人伊人精品色xxxx视频| 欧美日韩在线免费观看| 久久久久国产视频| 一区二区三区在线播放欧美| 国产福利精品在线| 亚洲精品小视频在线观看| 黑人欧美xxxx| 成人妇女淫片aaaa视频| 亚洲国产精彩中文乱码av在线播放| 久久精品亚洲热| 日韩欧美综合在线视频| 国产精品欧美风情| 性欧美xxxx交| 原创国产精品91| 久久91亚洲精品中文字幕奶水| 最近免费中文字幕视频2019| 国产69精品99久久久久久宅男| 精品magnet| 国产女人18毛片水18精品| 欧美极品少妇xxxxx| 久久久精品视频成人| 精品福利视频导航| 国产精品极品美女粉嫩高清在线| 亚洲激情 国产| 最近的2019中文字幕免费一页| 久久久久亚洲精品| 国产精品久久二区| 亚洲级视频在线观看免费1级| 欧美成人性生活| 国产精品日韩在线一区| 亚洲精品成人久久久| 国产一区二中文字幕在线看| 亚洲福利视频网站| 这里只有精品视频在线| 91深夜福利视频| 亚洲天堂av综合网| 正在播放欧美视频| 欧美亚洲国产精品| 欧美天天综合色影久久精品| 亚洲精品国产美女| 一本色道久久综合狠狠躁篇怎么玩| 97国产在线观看| 国产欧洲精品视频| 精品中文字幕视频| 欧美激情在线观看视频| 国产91精品不卡视频| 国产精品电影久久久久电影网| 亚洲国产日韩欧美在线99| 在线亚洲男人天堂| 精品国产福利视频| 欧美黑人性生活视频| 亚洲第五色综合网| 国产一区二区三区在线免费观看| 亚洲国产精品视频在线观看| 国产精品一区二区av影院萌芽| 精品久久久久久久久久ntr影视| 日本一区二区在线播放| 中文.日本.精品| 亚洲自拍高清视频网站| 亚洲精品一区中文字幕乱码| 久久99国产精品久久久久久久久| 亚洲视频在线免费看| 久久影视免费观看| 久久久最新网址| 国产精品久久久久久av下载红粉| 久久韩国免费视频| 欧美丰满少妇xxxx| 91国自产精品中文字幕亚洲| 欧美大胆在线视频| 91精品视频专区|