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和HTML5利用canvas构建Web五子棋游戏实现算法
Jul 17 Javascript
Javascript中克隆一个数组的实现代码
Dec 06 Javascript
Js Jquery创建一个弹出层可加载一个页面
May 08 Javascript
JavaScript结合AJAX_stream实现流式显示
Jan 08 Javascript
Vue数据驱动模拟实现4
Jan 12 Javascript
jQuery中.attr()和.data()的区别分析
Sep 03 jQuery
jQuery zTree 异步加载添加子节点重复问题
Nov 29 jQuery
webpack中如何使用雪碧图的示例代码
Nov 11 Javascript
vue项目前端知识点整理【收藏】
May 13 Javascript
jquery UI实现autocomplete在获取焦点时得到显示列表功能示例
Jun 04 jQuery
基于vue手写tree插件的那点事儿
Aug 20 Javascript
layer.alert自定义关闭回调事件的方法
Sep 27 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
兼容firefox,chrome的网页灰度效果
2011/08/08 PHP
php设置session值和cookies的学习示例
2014/03/21 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
2017/03/06 PHP
php xhprof使用实例详解
2019/04/15 PHP
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
分别用marquee和div+js实现首尾相连循环滚动效果,仅3行代码
2011/09/21 Javascript
jQuery.Validate验证库的使用介绍
2013/04/26 Javascript
JQuery中SetTimeOut传参问题探讨
2013/05/10 Javascript
asp.net刷新本页面的六种方法总结
2014/01/07 Javascript
快速掌握WordPress中加载JavaScript脚本的方法
2015/12/17 Javascript
第一次接触神奇的Bootstrap基础排版
2016/07/26 Javascript
JS基于递归实现倒计时效果的方法
2016/11/26 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
微信小程序如何像vue一样在动态绑定类名
2018/04/17 Javascript
Hexo已经看腻了,来手把手教你使用VuePress搭建个人博客
2018/04/26 Javascript
利用npm 安装删除模块的方法
2018/05/15 Javascript
微信小程序分享海报生成的实现方法
2018/12/10 Javascript
vue-router命名路由和编程式路由传参讲解
2019/01/19 Javascript
JavaScript中构造函数与原型链之间的关系详解
2019/02/25 Javascript
vue使用自定义指令实现拖拽
2021/01/29 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
vue前端和Django后端如何查询一定时间段内的数据
2021/02/28 Vue.js
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
python 中split 和 strip的实例详解
2017/07/12 Python
python内置函数:lambda、map、filter简单介绍
2017/11/16 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
2018/05/11 Python
python实现微信机器人: 登录微信、消息接收、自动回复功能
2019/04/29 Python
python解压TAR文件至指定文件夹的实例
2019/06/10 Python
Python 模拟动态产生字母验证码图片功能
2019/12/24 Python
详解Python IO编程
2020/07/24 Python
秘书英文求职信范文
2014/01/31 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
员工团队活动方案
2014/08/28 职场文书
2016元旦晚会主持词
2015/07/01 职场文书
快速学习Oracle触发器和游标
2021/06/30 Oracle