详细AngularJs4的图片剪裁组件的实例


Posted in Javascript onJuly 12, 2017

本文介绍了AngularJs4的图片剪裁组件,下面我来记录一下,有需要了解AngularJs4的图片剪裁组件的朋友可参考。希望此文章对各位有所帮助。

jQuery里有一个强大的图片剪裁插件,叫cropper.js。这是大神的GitHub地址:https://github.com/fengyuanchen/cropper

首先想在全是ts文件的angular里运用jquery的js代码插件,这时候需要一个东西,他叫桥接文件。npm是一个强大的库,已经有前人在里面封装了cropper以及所有你能想到想不到的插件,你需要做的只是安装上就好了。需要在webstorm的Terminal里敲npm install cropperJs 这样在node_modules文件夹里就会出现cropperjs的文件。有一个@types的文件夹,里面放着你需要用到相对应js插件的ts桥接文件。在Terminal里敲npm install @types/cropperjs

忘了说 在@types下有一个叫index.d.ts的文件,里面有示例:https://github.com/DefinitelyTyped/DefinitelyTyped,在types下搜cropper,有个文件cropperjs-tests.ts,就能看到一个例子,长这样:

import * as Cropper from 'cropperjs';

var image = <HTMLImageElement>document.getElementById('image');
var cropper = new Cropper(image, {
 aspectRatio: 16 / 9,
 crop: function(e) {
  console.log(e.detail.x);
  console.log(e.detail.y);
  console.log(e.detail.width);
  console.log(e.detail.height);
  console.log(e.detail.rotate);
  console.log(e.detail.scaleX);
  console.log(e.detail.scaleY);
 }
});

接下来就可以写代码啦啦啦啦~~

创建一个component

import {Component, Input, AfterViewInit, ViewEncapsulation} from '@angular/core';
import * as Cropper from 'cropperjs';

@Component({
 selector: 'cropper',
 templateUrl: './cropper.component.html',
 styleUrls: ['./cropper.component.less'],
 encapsulation: ViewEncapsulation.None
})

import * as Cropper from 'cropperjs';这个是引用cropper的方式。

encapsulation: ViewEncapsulation.None 因为angular会封装自己的样式,导致自己在less文件里写的样式不生效,这句的意义在于,不让angular生效自己封装的样式。

想要实现点击一个按钮,弹出一个框让你选图片,需要做的是写一个change事件,获取到选中图片的路径,然后运用cropper里的替换路径的replace方法,就能完成换图片显示了。

<input type="file" accept="image/jpeg" (change)="getImgUrl($event)">
getImgUrl($event) {
  this.cropper.replace(window.URL.createObjectURL($event.path[0].files[0])) ;
  console.log($event);
 }

$event 是整个事件对象。

接下来就可以添加自己需要的功能了,比如说向右旋转90度。

<button (click)="rotateRight()">rotate</button>
rotateRight() {
  console.log(this.cropper.getData());
  this.cropper.rotate(90);
 }

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

Javascript 相关文章推荐
jQuery之ajax技术的详细介绍
Jun 19 Javascript
JS获取当前网址、主机地址项目根路径
Nov 19 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
Jun 24 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
May 20 Javascript
AngularJS深入探讨scope,继承结构,事件系统和生命周期
Nov 02 Javascript
vue2.0数据双向绑定与表单bootstrap+vue组件
Feb 27 Javascript
Node.js数据库操作之查询MySQL数据库(二)
Mar 04 Javascript
JS实现弹出下载对话框及常见文件类型的下载
Jul 13 Javascript
简述jQuery Easyui一些用法
Aug 01 jQuery
通过实例解析js简易模块加载器
Jun 17 Javascript
微信小程序实现下拉加载更多商品
Dec 29 Javascript
vue ref如何获取子组件属性值
Mar 31 Vue.js
JS中使用gulp实现压缩文件及浏览器热加载功能
Jul 12 #Javascript
Vue中的数据监听和数据交互案例解析
Jul 12 #Javascript
js 监控iframe URL的变化实例代码
Jul 12 #Javascript
jQuery 循环遍历改变a标签的href(实例讲解)
Jul 12 #jQuery
浅谈原生JS中的延迟脚本和异步脚本
Jul 12 #Javascript
基于zepto.js实现手机相册功能
Jul 11 #Javascript
React-Native实现ListView组件之上拉刷新实例(iOS和Android通用)
Jul 11 #Javascript
You might like
PHP 中的批处理的实现
2007/06/14 PHP
php 数组的指针操作实现代码
2011/02/08 PHP
PHP获取远程图片并保存到本地的方法
2015/05/12 PHP
PHP数据对象PDO操作技巧小结
2016/09/27 PHP
自动检查并替换文本框内的字符
2006/06/30 Javascript
javascript之AJAX框架使用说明
2010/04/24 Javascript
JS验证日期的格式YYYY-mm-dd 具体实现
2013/06/29 Javascript
Javascript 颜色渐变效果的实现代码
2013/10/01 Javascript
JavaScript中exec函数用法实例分析
2015/06/08 Javascript
jQuery中弹出iframe内嵌页面元素到父页面并全屏化的实例代码
2016/12/27 Javascript
js生成随机数方法和实例
2017/01/17 Javascript
JS实现多级菜单中当前菜单不随页面跳转样式而发生变化
2017/05/30 Javascript
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
nodejs中安装ghost出错的原因及解决方法
2017/10/23 NodeJs
vue 运用mock数据的示例代码
2017/11/07 Javascript
jQuery判断自定义属性data-val用法示例
2019/01/07 jQuery
JS字符串常用操作方法实例小结
2019/06/24 Javascript
原生js实现3D轮播图
2020/03/21 Javascript
JavaScript实现单图片上传并预览功能
2019/09/30 Javascript
解决$store.getters调用不执行的问题
2019/11/08 Javascript
JavaScript经典案例之简易计算器
2020/08/24 Javascript
python中List的sort方法指南
2014/09/01 Python
Python面向对象编程中的类和对象学习教程
2015/03/30 Python
几个提升Python运行效率的方法之间的对比
2015/04/03 Python
Python判断Abundant Number的方法
2015/06/15 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
分享Python切分字符串的一个不错方法
2018/12/14 Python
Python编写打字训练小程序
2019/09/26 Python
基于python图书馆管理系统设计实例详解
2020/08/05 Python
Python内置函数property()如何使用
2020/09/01 Python
HolidayLettings英国:预订最好的度假公寓、别墅和自助式住宿
2019/08/27 全球购物
SQL Server提供的3种恢复模型都是什么? 有什么区别?
2012/05/13 面试题
工程力学专业自荐信范文
2014/03/17 职场文书
科学育儿宣传标语
2014/10/08 职场文书
代办出身证明书
2014/10/21 职场文书
旷课检讨书范文
2014/10/30 职场文书