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 相关文章推荐
9个javascript语法高亮插件 推荐
Jul 18 Javascript
分享一个自己写的简单的javascript分页组件
Feb 15 Javascript
Highcharts入门之简介
Aug 02 Javascript
js中通过getElementsByName访问name集合对象的方法
Oct 31 Javascript
原生javascript实现读写CSS样式的方法详解
Feb 20 Javascript
详解JS中遍历语法的比较
Apr 07 Javascript
VUE利用vuex模拟实现新闻点赞功能实例
Jun 28 Javascript
原生JS与jQuery编写简单选项卡
Oct 30 jQuery
详解Vue一个案例引发「内容分发slot」的最全总结
Dec 02 Javascript
vue中destroyed方法的使用说明
Jul 21 Javascript
jquery实现图片放大镜效果
Dec 23 jQuery
如何利用JavaScript编写一个格斗小游戏
Jan 06 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
php 无法载入mysql扩展
2010/03/12 PHP
PHP生成sitemap.xml地图函数
2013/11/13 PHP
php将url地址转化为完整的a标签链接代码(php为url地址添加a标签)
2014/01/17 PHP
在WordPress中实现发送http请求的相关函数解析
2015/12/29 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
使用composer 安装 laravel框架的方法图文详解
2019/08/02 PHP
javascript中常用编程知识
2013/04/08 Javascript
JS判断表单输入是否为空(示例代码)
2013/12/23 Javascript
javascript生成随机大小写字母的方法
2014/02/20 Javascript
jQuery之选项卡的简单实现
2014/02/28 Javascript
JS解析XML实例分析
2015/01/30 Javascript
BootstrapTable与KnockoutJS相结合实现增删改查功能【二】
2016/05/10 Javascript
jQuery的Cookie封装,与PHP交互的简单实现
2016/10/05 Javascript
jQuery实现获取隐藏div高度的方法示例
2017/02/09 Javascript
JS仿JQuery选择器功能
2017/03/08 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
vue 全选与反选的实现方法(无Bug 新手看过来)
2018/02/09 Javascript
微信小程序的授权实现过程解析
2019/08/02 Javascript
[57:22]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第五场
2018/04/10 DOTA
python使用webbrowser浏览指定url的方法
2015/04/04 Python
Python:__eq__和__str__函数的使用示例
2020/09/26 Python
Django vue前后端分离整合过程解析
2020/11/20 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
2020/12/16 Python
CSS改变网页中鼠标选中文字背景颜色例子
2014/04/23 HTML / CSS
马来西亚网上花店:FlowerAdvisor马来西亚
2020/01/03 全球购物
日本最大的购物网站:日本乐天市场(Rakuten Ichiba)
2020/11/04 全球购物
介绍一下Mysql的存储引擎
2015/02/12 面试题
大专应届生个人简历的自我评价
2013/10/15 职场文书
团支部建设方案
2014/05/02 职场文书
学生鉴定评语大全
2014/05/05 职场文书
九寨沟导游词
2015/02/02 职场文书
孔子观后感
2015/06/08 职场文书
2015年教师国培感言
2015/08/01 职场文书
python3读取文件指定行的三种方法
2021/05/24 Python
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python