亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue怎么實現拖動截圖功能

發布時間:2021-07-08 18:07:08 來源:億速云 閱讀:199 作者:chen 欄目:開發技術

本篇內容介紹了“Vue怎么實現拖動截圖功能”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

一、安裝html2canvas、vue-cropper

npm i html2canvas --save          //用于將指定區域轉為圖片
npm i vue-cropper -S             //將圖片進行裁剪

二、在main.js注冊vue-cropper組件

import VueCropper from 'vue-cropper'
Vue.use(VueCropper)

三、頁面中引入html2canvas

  import html2canvas from "html2canvas"
  export default{
  }

四、代碼分解

1、將指定區域轉為圖片

this.$nextTick(()=>{
   html2canvas(document.body,{}).then(canvas => {    
     let dataURL = canvas.toDataURL("image/png");
     this.uploadImg = dataURL
     this.loading = true
   });
 })

這里是將body整個頁面轉為圖片,得到base64格式數據,其他區域直接獲取class或者id

2、將生成的圖片進行拖動截圖

<template>
	<div class="pop_alert" v-if="show">
	   <vueCropper
	      @mouseenter.native="enter"
	      @mouseleave.native="leave"
	      ref="cropper"
	      :img="uploadImg"
	      :outputSize="option.size"
	      :outputType="option.outputType"
	      :info="true"
	      :full="option.full"
	      :canMove="option.canMove"
	      :canMoveBox="option.canMoveBox"
	      :original="option.original"
	      :autoCrop="option.autoCrop"
	      :fixed="option.fixed"
	      :fixedNumber="option.fixedNumber"
	      :centerBox="option.centerBox"
	      :infoTrue="option.infoTrue"
	      :fixedBox="option.fixedBox"
	      
	    ></vueCropper>
	    <div class="btn_box">
	    	<div @click="save">確認截圖</div>
	   	    <div @click="close">取消</div>
	    </div>
	 </div>
 </template>
<script>
 export default{
   data(){
       option: {
          info: true, // 裁剪框的大小信息
          outputSize: 0.8, // 裁剪生成圖片的質量
          outputType: "jpeg", // 裁剪生成圖片的格式
          canScale: false, // 圖片是否允許滾輪縮放
          autoCrop: false, // 是否默認生成截圖框
          fixedBox: false, // 固定截圖框大小 不允許改變
          fixed: false, // 是否開啟截圖框寬高固定比例
          fixedNumber: [7, 5], // 截圖框的寬高比例
          full: true, // 是否輸出原圖比例的截圖
          canMove: false, //時候可以移動原圖
          canMoveBox: true, // 截圖框能否拖動
          original: false, // 上傳圖片按照原始比例渲染
          centerBox: false, // 截圖框是否被限制在圖片里面
          infoTrue: true // true 為展示真實輸出圖片寬高 false 展示看到的截圖框寬高
        },
        uploadImg:"",
        show: false
   },
   methods:{
     enter() {
       if (this.uploadImg == "") {
         return;
       }
       this.$refs.cropper.startCrop(); //開始裁剪
     },
     leave() {
       this.$refs.cropper.stopCrop();//停止裁剪
     },
     save() {        //確認截圖
        this.$refs.cropper.getCropData((data) => {      //獲取截圖的base64格式數據
          console.log(data)
          this.show = false
        })
        // this.$refs.cropper.getCropBlob(data => { //獲取截圖的Blob格式數據
        //   this.cutImg = data;
        // });
      },
      close(){        //取消
        this.show = false
      }
   }
 }
 </script>

五、全部代碼

<template>
   <div>
     <div @click="tailoring">裁剪</div>
	<!--繼續寫頁面的其他內容 pop_alert可封裝成組件使用-->
	
     <div class="pop_alert" v-if="show">
	   <vueCropper
	      @mouseenter.native="enter"
	      @mouseleave.native="leave"
	      ref="cropper"
	      :img="uploadImg"
	      :outputSize="option.size"
	      :outputType="option.outputType"
	      :info="true"
	      :full="option.full"
	      :canMove="option.canMove"
	      :canMoveBox="option.canMoveBox"
	      :original="option.original"
	      :autoCrop="option.autoCrop"
	      :fixed="option.fixed"
	      :fixedNumber="option.fixedNumber"
	      :centerBox="option.centerBox"
	      :infoTrue="option.infoTrue"
	      :fixedBox="option.fixedBox"
	      
	    ></vueCropper>
	    <div class="btn_box">
	    	<div @click="save">確認截圖</div>
	   	    <div @click="close">取消</div>
	    </div>
	 </div>
   </div>
</template>
<script>
import html2canvas from "html2canvas"
 export default{
  data(){
   return{
     option: {
          info: true, // 裁剪框的大小信息
          outputSize: 0.8, // 裁剪生成圖片的質量
          outputType: "jpeg", // 裁剪生成圖片的格式
          canScale: false, // 圖片是否允許滾輪縮放
          autoCrop: false, // 是否默認生成截圖框
          fixedBox: false, // 固定截圖框大小 不允許改變
          fixed: false, // 是否開啟截圖框寬高固定比例
          fixedNumber: [7, 5], // 截圖框的寬高比例
          full: true, // 是否輸出原圖比例的截圖
          canMove: false, //時候可以移動原圖
          canMoveBox: true, // 截圖框能否拖動
          original: false, // 上傳圖片按照原始比例渲染
          centerBox: false, // 截圖框是否被限制在圖片里面
          infoTrue: true // true 為展示真實輸出圖片寬高 false 展示看到的截圖框寬高
        },
        uploadImg:"",
        show: false
   }
  },
  methods:{
    tailoring(){            //裁剪
      this.$nextTick(()=>{
           html2canvas(document.body,{}).then(canvas => {
             let dataURL = canvas.toDataURL("image/png");
             this.uploadImg = dataURL
             this.show = true
           });
       })
    },
    enter() {
       if (this.uploadImg == "") {
         return;
       }
       this.$refs.cropper.startCrop(); //開始裁剪
     },
     leave() {
       this.$refs.cropper.stopCrop();//停止裁剪
     },
     save() {        //確認截圖
        this.$refs.cropper.getCropData((data) => {      //獲取截圖的base64格式數據
          console.log(data)
          this.show = false
        })
        // this.$refs.cropper.getCropBlob(data => { //獲取截圖的Blob格式數據
        //   this.cutImg = data;
        // });
      },
      close(){        //取消
        this.show = false
      }
   }
 }
</script>
<style>
	.pop_alert{
      width: 100%;
	  height: 100%;
	  position: absolute;
	  top: 0;
	  left: 0;
	  border: 1px dashed red;
	  background-color: #000000;
    }
    .btn_box{
        position: absolute;
	    top: 0;
	    color: red;
	    right: 0;
	    font-size: 30px;
	    display: flex;
        align-items: center;
	    z-index: 6666;
    }
</style>

效果圖

Vue怎么實現拖動截圖功能

Vue怎么實現拖動截圖功能

“Vue怎么實現拖動截圖功能”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

大邑县| 肃南| 百色市| 黄浦区| 桂平市| 新疆| 宝山区| 邳州市| 秀山| 陆川县| 宁城县| 拜城县| 綦江县| 繁峙县| 惠东县| 克山县| 永州市| 河间市| 黄梅县| 蕉岭县| 金沙县| 昭苏县| 昭觉县| 来安县| 隆德县| 桐梓县| 浦县| 靖宇县| 江都市| 蓬溪县| 体育| 内丘县| 蒙阴县| 平罗县| 萨嘎县| 池州市| 元朗区| 衡阳市| 黑山县| 吴川市| 扎鲁特旗|