详细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 相关文章推荐
JavaScript中的console.trace()函数介绍
Dec 29 Javascript
每天一篇javascript学习小结(Date对象)
Nov 13 Javascript
基于JS2Image实现圣诞树代码
Dec 24 Javascript
AngularJS中的Directive实现延迟加载
Jan 25 Javascript
深入理解jQuery之事件移除
Jun 02 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
May 03 Javascript
JavaScript数据结构之单链表和循环链表
Nov 28 Javascript
angular 内存溢出的问题解决
Jul 12 Javascript
JS前端知识点总结之内置对象,日期对象和定时器相关操作
Jul 05 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
Feb 06 Javascript
JavaScript命令模式原理与用法实例详解
Mar 10 Javascript
vue数据字典取键值项目的字典问题
Apr 12 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
《忧国的莫里亚蒂》先导宣传图与STAFF公开
2020/03/04 日漫
如何在PHP中使用Oracle数据库(5)
2006/10/09 PHP
建立文件交换功能的脚本(二)
2006/10/09 PHP
php从memcache读取数据再批量写入mysql的方法
2014/12/29 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
PHP7正式版测试,性能惊艳!
2015/12/08 PHP
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
ASP.NET jQuery 实例4(复制TextBox的文本到本地剪贴板上)
2012/01/13 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
实现51Map地图接口(示例代码)
2013/11/22 Javascript
jquery表单验证插件(jquery.validate.js)的3种使用方式
2015/03/28 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
2017/01/01 Javascript
详解Angular4中路由Router类的跳转navigate
2017/06/09 Javascript
基于vue v-for 多层循环嵌套获取行数的方法
2018/09/26 Javascript
vue-cli4使用全局less文件中的变量配置操作
2020/10/21 Javascript
小程序自定义圆形进度条
2020/11/17 Javascript
vue导入.md文件的步骤(markdown转HTML)
2020/12/31 Vue.js
Python中使用第三方库xlrd来读取Excel示例
2015/04/05 Python
使用Python编写基于DHT协议的BT资源爬虫
2016/03/19 Python
python3使用smtplib实现发送邮件功能
2018/05/22 Python
Python Grid使用和布局详解
2018/06/30 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
波兰数码相机及配件网上商店: Cyfrowe.pl
2017/06/19 全球购物
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
金智子午JAVA面试题
2015/09/04 面试题
敏捷开发的主要原则都有哪些
2015/04/26 面试题
大学生毕业求职找工作的自我评价
2013/09/29 职场文书
财务信息服务专业自荐书范文
2014/02/08 职场文书
学生会主席竞聘书
2014/03/31 职场文书
党的群众路线领导班子整改方案
2014/09/27 职场文书
2015年党员自评材料
2014/12/17 职场文书
大学生学年个人总结
2015/02/15 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
赵氏孤儿观后感
2015/06/09 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书