详细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实现CheckBox的全选与取消全选的代码
Jul 20 Javascript
js浮点数精确计算(加、减、乘、除)
Dec 26 Javascript
js报$ is not a function 的问题的解决方法
Jan 20 Javascript
把字符串按照特定的字母顺序进行排序的js代码
Jan 28 Javascript
Javascript中For In语句用法实例
May 14 Javascript
jQuery命名空间与闭包用法示例
Jan 12 Javascript
ajax与json 获取数据并在前台使用简单实例
Jan 19 Javascript
使用Ajax和Jquery配合数据库实现下拉框的二级联动的示例
Jan 25 jQuery
JS实现的透明度渐变动画效果示例
Apr 28 Javascript
Express本地测试HTTPS的示例代码
Jun 06 Javascript
页面内锚点定位及跳转方法总结(推荐)
Apr 24 Javascript
Vue指令实现OutClick的示例
Nov 16 Javascript
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 常用字符串函数总结
2008/03/15 PHP
Yii2 assets清除缓存的方法
2016/05/16 PHP
php常用正则函数实例小结
2016/12/29 PHP
php 中htmlentities导致中文无法查询问题
2018/09/10 PHP
让您的菜单不离网站
2006/10/03 Javascript
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
跨域表单提交状态的变相判断代码
2009/11/12 Javascript
jquery select 设置默认选中的示例代码
2014/02/07 Javascript
Javascript基础教程之数据类型 (字符串 String)
2015/01/18 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
彻底解决 webpack 打包文件体积过大问题
2017/07/07 Javascript
js编写简单的计时器功能
2017/07/15 Javascript
微信小程序云开发使用方法新手初体验
2019/05/16 Javascript
150行Node.js实现的dns代理工具
2019/08/02 Javascript
es6中Promise 对象基本功能与用法实例分析
2020/02/23 Javascript
Vue3 的响应式和以前有什么区别,Proxy 无敌?
2020/05/20 Javascript
Python删除指定目录下过期文件的2个脚本分享
2014/04/10 Python
Python里隐藏的“禅”
2014/06/16 Python
Python搭建代理IP池实现接口设置与整体调度
2019/10/27 Python
Python FFT合成波形的实例
2019/12/04 Python
python环境下安装opencv库的方法
2020/03/05 Python
孕妇装中的著名品牌:Isabella Oliver(伊莎贝拉·奥利弗)
2016/10/31 全球购物
捷克原创男装和女装购物网站:Bolf.cz
2018/04/28 全球购物
武汉某公司的C#笔试题面试题
2015/12/25 面试题
信用社实习人员自我鉴定
2013/09/20 职场文书
资深生产主管自我评价
2013/09/22 职场文书
高中校园广播稿
2014/01/11 职场文书
生物制药自我鉴定
2014/01/25 职场文书
电子信息工程专业推荐信
2014/02/14 职场文书
学校社会实践活动总结
2014/07/03 职场文书
通信工程求职信
2014/07/16 职场文书
优秀少先队员事迹材料
2014/12/24 职场文书
反腐倡廉学习心得体会范文
2015/08/15 职场文书
Spring事务管理下synchronized锁失效问题的解决方法
2022/03/31 Java/Android
SQL Server的存储过程与触发器以及系统函数和自定义函数
2022/04/10 SQL Server