vue-image-crop基于Vue的移动端图片裁剪组件示例


Posted in Javascript onAugust 28, 2018

本文介绍了vue-image-crop基于Vue的移动端图片裁剪组件示例,分享给大家,具体如下:

代码地址:https://github.com/jczzq/vue-image-crop

vue-image-crop

基于Vue的移动端图片裁剪组件

组件使用URL.createObjectURL()等新特性,使用前注意兼容问题。IE >= 10

注意:该组件适用于 PC 端,不推荐手机端使用。

功能预览

vue-image-crop基于Vue的移动端图片裁剪组件示例

vue-image-crop基于Vue的移动端图片裁剪组件示例

快速开始

安装Node >= 8.9.0(推荐LTS = 8.11.0

# 安装 vue-cli 3.x
npm install -g @vue/cli

cd vue-image-crop
npm install
npm run dev

启动开发模式即可定制功能

构建

npm run build

build之后会重新生成lib文件夹

API

props

属性名 类型 默认值 说明
value Object {} 裁剪后的图片对象;必传;可使用v-model绑定
proportion Object { w: 2, h: 1 } 图片宽高比例对象;非必传;用于动态计算宽高比例,所以w和h两个属性没有固定值
quality Number 0.92 清晰度;非必传;HTMLCanvasElement.toDataURL()的第二个参数
hasRemove Boolean false 是否显示移除按钮;非必传;列表中使用时可能会用到
skipCrop Boolean false 是否直接上传;非必传;设置为true的时候图片将不会裁剪直接返回
config Object { size: 1200, isSlice: true, path: null } 配置对象;此对象不传有默认值,若传时对象里的每个属性都必须传;size:图片最大宽度(px),isSlice:是否需要裁剪,path:显示图片时的路径,path参数将直接与图片id拼接(path + id)

events

事件名 说明 回调参数
remove 移除按钮被点击时触发 -
change 改变选中图片时触发 event.target.files[0],新文件
submit 图片操作完成时触发 当前裁剪后的图片对象
cancel 图片操作取消时触发 -

示例代码

<template>
  <div class="ctnr">
    <p>常规用法</p>
    <m-image-crop class="mic mic1"
           v-model="img"></m-image-crop>

    <p>调整比例</p>
    <m-image-crop class="mic mic2"
           v-model="img2"
           :proportion="{ w: 100, h: 35 }"></m-image-crop>

    <p>列表</p>
    <div class="list">
      <div class="item"
         v-for="(item, index) in imgList"
         :key="item.id">
        <m-image-crop class="mic"
               has-remove
               :value="item"
               :proportion="{ w: 1, h: 1 }"
               @remove="removeHandle(index)"></m-image-crop>
      </div>
      <div class="item add"
         @click="addHandle">添加图片</div>
    </div>

  </div>
</template>

<script>
export default {
  data() {
    return {
      img: {},
      img2: {},
      imgList: []
    };
  },
  methods: {
    addHandle() {
      this.imgList.push({});
    },
    removeHandle(index) {
      this.imgList.splice(index, 1);
    }
  }
};
</script>

<style lang="less">
html,
body {
  margin: 0;
}
.ctnr {
  height: 100vh;
  .mic {
    border: 1px dotted #4fc08d;
  }
  .mic1 {
    width: 200px;
    height: 100px;
  }
  .mic2 {
    width: 100vw;
    height: 35vw;
  }
  .list {
    font-size: 0;
    .item {
      box-sizing: border-box;
      font-size: 14px;
      vertical-align: middle;
      display: inline-block;
      border: 1px dotted #4fc08d;
      width: 33.33vw;
      height: 33.33vw;
    }
    .add {
      text-align: center;
      line-height: 33.33vw;
    }
  }
}
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery 处理网页内容的实现代码
Feb 15 Javascript
Jquery动态改变图片IMG的src地址示例
Jun 25 Javascript
用js控制组织结构图可以任意拖拽到指定位置
Jan 17 Javascript
$(&quot;&quot;).click与onclick的区别示例介绍
Sep 25 Javascript
在JavaScript中处理数组之reverse()方法的使用
Jun 09 Javascript
浅析jquery unbind()方法移除元素绑定的事件
May 24 Javascript
JS 循环li添加点击事件 (闭包的应用)
Dec 10 Javascript
实例浅析js的this
Dec 11 Javascript
Bootstrap和Java分页实例第一篇
Dec 23 Javascript
vue通过watch对input做字数限定的方法
Jul 13 Javascript
vue props对象validator自定义函数实例
Nov 13 Javascript
原生js实现下拉框选择组件
Jan 20 Javascript
vue移动端微信授权登录插件封装的实例
Aug 28 #Javascript
Vue 应用中结合vux使用微信 jssdk的方法
Aug 28 #Javascript
对vux点击事件的优化详解
Aug 28 #Javascript
使用D3.js构建实时图形的示例代码
Aug 28 #Javascript
微信小程序手机号码验证功能的实例代码
Aug 28 #Javascript
AngularJS 事件发布机制
Aug 28 #Javascript
vue.js 添加 fastclick的支持方法
Aug 28 #Javascript
You might like
日本十大科幻动漫 宇宙骑士垫底,第一已成经典
2020/03/04 日漫
用PHP来写记数器(详细介绍)
2006/10/09 PHP
php 提速工具eAccelerator 配置参数详解
2010/05/16 PHP
php版银联支付接口开发简明教程
2016/10/14 PHP
php创建图像具体步骤
2017/03/13 PHP
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
javascript 函数参数限制说明
2010/11/19 Javascript
js弹出窗口之弹出层的小例子
2013/06/17 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
JQuery 又谈ajax局部刷新
2017/11/27 jQuery
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
详解javascript中的babel到底是什么
2018/06/21 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
nodejs通过钉钉群机器人推送消息的实现代码
2019/05/05 NodeJs
使用axios请求时,发送formData请求的示例
2019/10/29 Javascript
javascript实现切割轮播效果
2019/11/28 Javascript
es6函数之尾递归用法实例分析
2020/04/25 Javascript
[54:53]完美世界DOTA2联赛PWL S2 GXR vs PXG 第二场 11.18
2020/11/18 DOTA
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
在Python中处理字符串之isdigit()方法的使用
2015/05/18 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
2018/10/11 Python
关于tensorflow的几种参数初始化方法小结
2020/01/04 Python
Python Selenium截图功能实现代码
2020/04/26 Python
Python延迟绑定问题原理及解决方案
2020/08/04 Python
英国鞋类及配饰零售商:Kurt Geiger
2017/02/04 全球购物
Nice Kicks网上商店:ShopNiceKicks.com
2018/12/25 全球购物
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
Java中compareTo和compare的区别
2016/04/12 面试题
yy结婚证婚词
2014/01/10 职场文书
先进单位申报材料
2014/12/25 职场文书
虎兄虎弟观后感
2015/06/12 职场文书
三八妇女节致辞
2015/07/31 职场文书
Python 文本滚动播放器的实现代码
2021/04/25 Python
利用Selenium添加cookie实现自动登录的示例代码(fofa)
2021/05/08 Python
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技