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 相关文章推荐
Javascript注入技巧
Jun 22 Javascript
Jquery实现图片放大镜效果的思路及代码(自写)
Oct 18 Javascript
JQuery异步加载无限下拉框级联功能实现示例
Feb 19 Javascript
Javascript实现商品秒杀倒计时(时间与服务器时间同步)
Sep 16 Javascript
老生常谈 js中this的指向
Jun 30 Javascript
hovertree插件实现二级树形菜单(简单实用)
Dec 28 Javascript
node操作mysql数据库实例详解
Mar 17 Javascript
浅析Angular2子模块以及异步加载
Apr 24 Javascript
利用node.js爬取指定排名网站的JS引用库详解
Jul 25 Javascript
JS如何设置元素样式的方法示例
Aug 28 Javascript
Vue 组件间的样式冲突污染
Aug 31 Javascript
写一个Vue Popup组件
Feb 25 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
在数据量大(超过10万)的情况下
2007/01/15 PHP
PHP如何将XML转成数组
2016/04/04 PHP
使用Apache的rewrite
2021/03/09 Servers
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
js跑步算法的实现代码
2013/12/04 Javascript
jQuery中first()方法用法实例
2015/01/06 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
JS实现方向键切换输入框焦点的方法
2015/08/19 Javascript
仅30行代码实现Javascript中的MVC
2016/02/15 Javascript
gulp-htmlmin压缩html的gulp插件实例代码
2016/06/06 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
jQuery实现的导航下拉菜单效果示例
2016/09/05 Javascript
js格式化时间的简单实例
2016/11/27 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
webpack打包js的方法
2018/03/12 Javascript
对layui中的onevent 和event的使用详解
2019/09/06 Javascript
JavaScript对象原型链原理详解
2020/02/05 Javascript
VUE项目axios请求头更改Content-Type操作
2020/07/24 Javascript
详解 javascript对象创建模式
2020/10/30 Javascript
用python实现面向对像的ASP程序实例
2014/11/10 Python
Python实现的读取/更改/写入xml文件操作示例
2018/08/30 Python
python 实现查找文件并输出满足某一条件的数据项方法
2019/06/12 Python
python自动化测试之DDT数据驱动的实现代码
2019/07/23 Python
Python如何操作office实现自动化及win32com.client的运用
2020/04/01 Python
Numpy数组的广播机制的实现
2020/11/03 Python
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
体育教学随笔感言
2014/02/24 职场文书
学生党员公开承诺书
2014/05/28 职场文书
欢迎领导检查标语
2014/06/27 职场文书
七年级地理教学计划
2015/01/22 职场文书
同学聚会致辞集锦
2015/07/28 职场文书
React中的Context应用场景分析
2021/06/11 Javascript