详细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 相关文章推荐
JS应用之禁止抓屏、复制、打印
Feb 21 Javascript
说明你的Javascript技术很烂的五个原因
Apr 26 Javascript
javascript中的绑定与解绑函数应用示例
Jun 24 Javascript
javascript自动给文本url地址增加链接的方法分享
Jan 20 Javascript
javascript实现倒计时并弹窗提示特效
Jun 05 Javascript
JavaScript操作XML文件之XML读取方法
Jun 09 Javascript
JS简单实现城市二级联动选择插件的方法
Aug 19 Javascript
js实现移动端编辑添加地址【模仿京东】
Apr 28 Javascript
JavaScript实现淘宝京东6位数字支付密码效果
Aug 18 Javascript
微信小程序非swiper组件实现的自定义伪3D轮播图效果示例
Dec 11 Javascript
JavaScript实现拖动对话框效果的实现代码
Oct 12 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
Mar 01 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调用mysql存储过程
2007/02/14 PHP
PHP实现多条件查询实例代码
2010/07/17 PHP
PHP实现手机归属地查询API接口实现代码
2012/08/27 PHP
ThinkPHP的常用配置选项汇总
2016/03/24 PHP
PHP通过微信跳转的Code参数获取用户的openid(关键代码)
2016/07/06 PHP
Windows平台PHP+IECapt实现网页批量截图并创建缩略图功能详解
2019/08/02 PHP
jquery 的 $(&quot;#id&quot;).html() 无内容的解决方法
2010/06/07 Javascript
js调用css属性写法
2013/09/21 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
2016/08/31 Javascript
jQuery子选择器与可见性选择器实例分析
2019/06/28 jQuery
vue+django实现一对一聊天功能的实例代码
2019/07/17 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
vue3 watch和watchEffect的使用以及有哪些区别
2021/01/26 Vue.js
在Python的setuptools框架下生成egg的教程
2015/04/13 Python
python解决方案:WindowsError: [Error 2]
2016/08/28 Python
利用python写个下载teahour音频的小脚本
2017/05/08 Python
浅析Python中return和finally共同挖的坑
2017/08/18 Python
python递归函数绘制分形树的方法
2018/06/22 Python
python3在同一行内输入n个数并用列表保存的例子
2019/07/20 Python
Python利用FFT进行简单滤波的实现
2020/02/26 Python
Pandas将列表(List)转换为数据框(Dataframe)
2020/04/24 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
python对批量WAV音频进行等长分割的方法实现
2020/09/25 Python
Python特殊属性property原理及使用方法解析
2020/10/09 Python
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
英国知名美妆护肤在线商城:Zest Beauty
2018/04/24 全球购物
Sisley法国希思黎中国官网:享誉全球的奢华植物美容品牌
2019/06/30 全球购物
人力资源经理自我评价
2014/01/04 职场文书
《桃林那间小木屋》教学反思
2014/05/01 职场文书
离职证明标准格式
2014/09/15 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
如何写好竞聘报告
2019/04/03 职场文书
background-position百分比原理详解
2021/05/08 HTML / CSS
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers
python pandas 解析(读取、写入)CSV 文件的操作方法
2022/12/24 Python