Example: tip: This component is based on vue-cropper secondary packaging Install the plugin npm install vue-cropper yarn add vue-cropper Write packaged components <!-- Simple image cropping component--- Secondary packaging--> <!-- More APIs https://github.com/xyxiao001/vue-cropper --> <!-- Usage: Pass in the image ratio to display or hide. Method: Listen for the bottom button click --- add more props query documents yourself --> <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">Cancel</div> <img @click="clickRotate" src="../../assets/paradise/rotate.png" alt="" /> <div @click="clickOk" class="okey">OK</div> </div> </div> </template> <script> import { VueCropper } from 'vue-cropper'; export default { name: 'PictureCropping', components: { VueCropper }, props: { value: { type: Boolean, default: false, }, //Crop the image address img: { type: String, default: '', }, //The aspect ratio of the screenshot frame fixedNumber: { type: Array, default: () => { return [1, 1]; }, }, }, data() { return { // Basic configuration option for the cropping component : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : }, computed: {}, watch: {}, //Life cycle - creation completed (access the current this instance) created() {}, //Life cycle - Mounting completed (accessing DOM elements) mounted() {}, methods: { clickCancelCut() { this.$emit('clickCancelCut', 'Click to cancel'); this.$refs.cropper.stopCrop(); this.$refs.cropper.clearCrop(); }, clickRotate() { this.$refs.cropper.rotateRight(); this.$emit('clickRotate', 'Click to rotate'); }, clickOk() { //Output the trimmed 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(); Import css class*/ .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> Summarize This is the end of this article about the Vue image cropping component. For more relevant Vue image cropping component content, please search 123WORDPRESS.COM's previous articles or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future! You may also be interested in:
|
<<: Reasons and methods for Waiting for table metadata lock in MySQL
>>: Example code and method of storing arrays in mysql
Table of contents Preface Direct filling method f...
DNS (Domain Name Server) is a server that convert...
1. Docker ps lists containers 2. Docker cp copies...
If you only want to back up a few tables or a sin...
Download tutorial of mysql-connector-java.jar pac...
The commonly used escape characters in HTML are s...
Table of contents 1. Main functions 2. Implementa...
Table of contents Scope Global Scope Function Sco...
1. Overview of viewport Mobile browsers usually r...
How do I download MySQL from the official website...
1. Introduction Elasticsearch is very popular now...
1. Help Command 1. View the current Docker versio...
In the process of learning web design, I did not ...
Official website: http://code.google.com/p/zen-cod...
The cascading drop-down menu developed in this ex...