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调试技巧之console.log()详解
Mar 19 Javascript
使用JavaScript获取地址栏参数的方法
Dec 19 Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
Jan 20 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
Sep 20 Javascript
JavaScript编程中window的location与history对象详解
Oct 26 Javascript
js实现彩色条纹滚动条效果
Mar 15 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
Jul 22 jQuery
Element-ui中元素滚动时el-option超出元素区域的问题
May 30 Javascript
javascript面向对象程序设计实践常用知识点总结
Jul 29 Javascript
在layer弹层layer.prompt中,修改placeholder的实现方法
Sep 27 Javascript
vue实现带过渡效果的下拉菜单功能
Feb 19 Javascript
Vue 3自定义指令开发的相关总结
Jan 29 Vue.js
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
PHP内核介绍及扩展开发指南―基础知识
2011/09/11 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
2013/05/23 PHP
解析如何修改phpmyadmin中的默认登陆超时时间
2013/06/25 PHP
PHP抓取、分析国内视频网站的视频信息工具类
2014/04/02 PHP
php实现事件监听与触发的方法
2014/11/21 PHP
PHP中利用sleep函数实现定时执行功能实现代码
2016/08/25 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
理解Javascript_13_执行模型详解
2010/10/20 Javascript
javascript检测页面是否缩放的小例子
2013/05/16 Javascript
javascript控制Div层透明属性由浅变深由深变浅逐渐显示
2013/11/12 Javascript
jQuery对指定元素中指定字符串进行替换的方法
2015/03/17 Javascript
jQuery.extend 函数及用法详细
2015/09/06 Javascript
jquery获取url参数及url加参数的方法
2015/10/26 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
2015/11/05 Javascript
如何用JavaScript实现动态修改CSS样式表
2016/05/20 Javascript
Javascript this 函数深入详解
2016/12/13 Javascript
jquery dataTable 后台加载数据并分页实例代码
2017/06/07 jQuery
p5.js入门教程之小球动画示例代码
2018/03/15 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
JS中==、===你分清楚了吗
2020/03/04 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
2020/06/17 Javascript
vue element table中自定义一些input的验证操作
2020/07/18 Javascript
js异步接口并发数量控制的方法示例
2020/11/22 Javascript
[01:09]DOTAPLUS——DOTA2的新时代
2018/04/04 DOTA
python dict 相同key 合并value的实例
2019/01/21 Python
python3.4爬虫demo
2019/01/22 Python
使用Pyhton集合set()实现成果查漏的例子
2019/11/24 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
Python爬虫爬取百度搜索内容代码实例
2020/06/05 Python
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
金鑫耀Java笔试题
2014/09/06 面试题
党的群众教育实践活动实施方案
2014/06/12 职场文书
材料化学专业求职信
2014/07/15 职场文书
出差报告范文
2014/11/06 职场文书
带你了解CSS基础知识,样式
2021/07/21 HTML / CSS
pandas求平均数和中位数的方法实例
2021/08/04 Python