最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue圖片裁剪組件實例代碼

 更新時間:2021年07月02日 14:27:42   作者:zby909  
這篇文章主要給大家介紹了關(guān)于Vue圖片裁剪組件的相關(guān)資料,本文介紹的組件是基于vue-cropper二次封裝,vue-cropper大家應(yīng)該都很熟悉了吧,需要的朋友可以參考下

示例:

tip: 該組件基于vue-cropper二次封裝

安裝插件

npm install vue-cropper

yarn add vue-cropper

寫入封裝的組件

<!-- 簡易圖片裁剪組件 --- 二次封裝 -->
<!-- 更多api https://github.com/xyxiao001/vue-cropper -->
<!-- 使用:傳入圖片 比例 顯示隱藏。方法:監(jiān)聽底部按鈕點擊即可  ---更多props查詢文檔自行添加 -->

<template>
  <div v-if="value" :value="value" @input="val => $emit('input', val)" class="conbox">
    <div class="info">
      <vueCropper
        ref="cropper"
        :img="img"
        :outputSize="outputSize"
        :outputType="outputType"
        :info="info"
        :canScale="canScale"
        :autoCrop="autoCrop"
        :fixed="fixed"
        :fixedNumber="fixedNumber"
        :full="full"
        :fixedBox="fixedBox"
        :canMove="canMove"
        :canMoveBox="canMoveBox"
        :original="original"
        :centerBox="centerBox"
        :infoTrue="infoTrue"
        :mode="mode"
      ></vueCropper>
    </div>
    <div class="btns">
      <div @click="clickCancelCut" class="cancel">取消</div>
      <img @click="clickRotate" src="../../assets/paradise/rotate.png" alt="" />
      <div @click="clickOk" class="okey">確定</div>
    </div>
  </div>
</template>

<script>
import { VueCropper } from 'vue-cropper';
export default {
  name: 'PictureCropping',
  components: { VueCropper },
  props: {
    value: {
      type: Boolean,
      default: false,
    },
    //裁剪圖片的地址
    img: {
      type: String,
      default: '',
    },
    //截圖框的寬高比例
    fixedNumber: {
      type: Array,
      default: () => {
        return [1, 1];
      },
    },
  },
  data() {
    return {
      // 裁剪組件的基礎(chǔ)配置option
      //   img: this.img, // 裁剪圖片的地址
      outputSize: 1, // 裁剪生成圖片的質(zhì)量
      outputType: 'jpeg', // 裁剪生成圖片的格式
      info: true, // 裁剪框的大小信息
      canScale: true, // 圖片是否允許滾輪縮放
      autoCrop: true, // 是否默認生成截圖框
      // autoCropWidth: 300, // 默認生成截圖框?qū)挾?
      // autoCropHeight: 200, // 默認生成截圖框高度
      fixed: true, // 是否開啟截圖框?qū)捀吖潭ū壤?
      //   fixedNumber: this.fixedNumber, // 截圖框的寬高比例
      full: true, // 是否輸出原圖比例的截圖
      fixedBox: true, // 固定截圖框大小 不允許改變
      canMove: true, //上傳圖片是否可以移動
      canMoveBox: true, // 截圖框能否拖動
      original: false, // 上傳圖片按照原始比例渲染
      centerBox: true, // 截圖框是否被限制在圖片里面
      // high:true,// 是否按照設(shè)備的dpr 輸出等比例圖片
      infoTrue: true, // true 為展示真實輸出圖片寬高 false 展示看到的截圖框?qū)捀?
      // maxImgSize: 2000, //限制圖片最大寬度和高度
      // enlarge: 1, //圖片根據(jù)截圖框輸出比例倍數(shù)
      mode: 'contain', //圖片默認渲染方式
    };
  },
  computed: {},
  watch: {},
  //生命周期 - 創(chuàng)建完成(訪問當(dāng)前this實例)
  created() {},
  //生命周期 - 掛載完成(訪問DOM元素)
  mounted() {},
  methods: {
    clickCancelCut() {
      this.$emit('clickCancelCut', '點擊取消');
      this.$refs.cropper.stopCrop();
      this.$refs.cropper.clearCrop();
    },
    clickRotate() {
      this.$refs.cropper.rotateRight();
      this.$emit('clickRotate', '點擊旋轉(zhuǎn)');
    },
    clickOk() {
      //輸出裁剪的base64
      this.$refs.cropper.getCropData(data => {
        this.$emit('clickOk', data);
        this.$refs.cropper.stopCrop();
        this.$refs.cropper.clearCrop();
      });
    },
  },
};
</script>
<style lang='less' scoped>
/* @import url(); 引入css類 */
.conbox {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  box-sizing: border-box;
  height: 100vh;
  width: 100%;
  background-color: #000;
  display: flex;
  flex-direction: column;
  justify-content: center;
  .info {
    width: auto;
    height: 800px;
    .vue-cropper {
      background-image: none;
      background-color: #000;
    }
  }
  .btns {
    padding: 0 20px;

    color: #fff;
    text-align: center;
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: absolute;
    left: 0;
    right: 0;
    bottom: 15px;
    img {
      width: 85px;
      height: 85px;
    }
    .cancel {
      background-color: #606465;
      padding: 15px 20px;
      width: 100px;
      border-radius: 10px;
    }
    .okey {
      background-color: #df6457;
      padding: 15px 20px;
      width: 100px;
      border-radius: 10px;
    }
  }
}
</style>

總結(jié)

到此這篇關(guān)于Vue圖片裁剪組件的文章就介紹到這了,更多相關(guān)Vue圖片裁剪組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue中el-select 和el-tree二次封裝實現(xiàn)

    vue中el-select 和el-tree二次封裝實現(xiàn)

    本文介紹了vue中el-select 和el-tree二次封裝實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-11-11
  • Vue Hook Event 深度解讀

    Vue Hook Event 深度解讀

    Hook Event 是 Vue 的自定義事件結(jié)合生命周期鉤子實現(xiàn)的一種從組件外部為組件注入額外生命周期方法的功能,本文重點給大家介紹Vue Hook Event 解讀,感興趣的朋友一起看看吧
    2023-01-01
  • vue組件和iframe頁面的相互傳參問題及解決

    vue組件和iframe頁面的相互傳參問題及解決

    這篇文章主要介紹了vue組件和iframe頁面的相互傳參問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 100行代碼實現(xiàn)vue表單校驗功能(小白自編)

    100行代碼實現(xiàn)vue表單校驗功能(小白自編)

    這篇文章主要介紹了使用100行代碼實現(xiàn)vue表單校驗功能,本文通過實例截圖給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11
  • 代替Vue?Cli的全新腳手架工具create?vue示例解析

    代替Vue?Cli的全新腳手架工具create?vue示例解析

    這篇文章主要為大家介紹了代替Vue?Cli的全新腳手架工具create?vue示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • VUE3之Non-Props屬性的具體使用

    VUE3之Non-Props屬性的具體使用

    本文主要介紹了VUE3之Non-Props屬性的具體使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Vue實現(xiàn)登錄保存token并校驗實現(xiàn)保存登錄狀態(tài)的操作代碼

    Vue實現(xiàn)登錄保存token并校驗實現(xiàn)保存登錄狀態(tài)的操作代碼

    這篇文章主要介紹了Vue實現(xiàn)登錄保存token并校驗實現(xiàn)保存登錄狀態(tài),本文通過示例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • 解決vue中使用Axios調(diào)用接口時出現(xiàn)的ie數(shù)據(jù)處理問題

    解決vue中使用Axios調(diào)用接口時出現(xiàn)的ie數(shù)據(jù)處理問題

    今天小編就為大家分享一篇解決vue中使用Axios調(diào)用接口時出現(xiàn)的ie數(shù)據(jù)處理問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • Vue 2.0中生命周期與鉤子函數(shù)的一些理解

    Vue 2.0中生命周期與鉤子函數(shù)的一些理解

    這篇文章主要給大家介紹了關(guān)于Vue 2.0中生命周期與鉤子函數(shù)的相關(guān)資料,對大家學(xué)習(xí)或者使用vue2.0具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨小編一起來看看吧。
    2017-05-05
  • vue簡單實現(xiàn)一個虛擬列表的示例代碼

    vue簡單實現(xiàn)一個虛擬列表的示例代碼

    虛擬列表只渲染當(dāng)前可視區(qū)域的列表,并不會將所有的數(shù)據(jù)渲染,本文主要介紹了vue簡單實現(xiàn)一個虛擬列表的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-03-03

最新評論

汾阳市| 鄂托克前旗| 安丘市| 卢湾区| 德江县| 石河子市| 抚顺市| 佳木斯市| 重庆市| 葵青区| 盐山县| 丰原市| 长乐市| 闸北区| 乡宁县| 松桃| 宜兰县| 靖远县| 鸡东县| 苗栗县| 延长县| 平舆县| 枞阳县| 东平县| 北辰区| 察雅县| 昌乐县| 翁牛特旗| 德钦县| 溆浦县| 南宁市| 青田县| 伽师县| 乌兰县| 儋州市| 濮阳市| 宜兰县| 栾川县| 济宁市| 哈尔滨市| 安宁市|