详细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 绑定回车动作扑捉回车键触发的事件
Mar 26 Javascript
jQuery中find()方法用法实例
Jan 07 Javascript
jQuery实现复选框成对选择及对应取消的方法
Mar 03 Javascript
readonly和disabled属性的区别
Jul 26 Javascript
Angular2  NgModule 模块详解
Oct 19 Javascript
BootStrapTable服务器分页实例解析
Dec 20 Javascript
如何清除IE10+ input X 文本框的叉叉和密码输入框的眼睛图标
Dec 21 Javascript
JavaScript设计模式之策略模式详解
Jun 09 Javascript
基于Vue的ajax公共方法(详解)
Jan 20 Javascript
fetch 如何实现请求数据
Dec 20 Javascript
javascript实现点击按钮切换轮播图功能
Sep 23 Javascript
vue+elementUI实现简单日历功能
Sep 24 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导出到Excel或CSV的详解(附utf8、gbk 编码转换)
2013/06/25 PHP
PHP PDOStatement:bindParam插入数据错误问题分析
2013/11/13 PHP
php中执行系统命令的方法
2015/03/21 PHP
php保存任意网络图片到服务器的方法
2015/04/14 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
2015/06/17 PHP
PHP验证终端类型是否为手机的简单实例
2017/02/07 PHP
PC端微信扫码支付成功之后自动跳转php版代码
2017/07/07 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
php扩展开发入门demo示例
2019/09/23 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
JavaScript splice()方法详解
2020/09/22 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
javascript实时显示北京时间的方法
2015/03/12 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
详解angular笔记路由之angular-router
2017/09/12 Javascript
web前端vue之CSS过渡效果示例
2018/01/10 Javascript
javascript实现日历效果
2019/06/17 Javascript
JavaScript Image对象实现原理实例解析
2020/08/26 Javascript
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
python中rc1什么意思
2020/06/19 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
html5的自定义data-*属性与jquery的data()方法的使用
2014/07/02 HTML / CSS
Spartoo西班牙官网:法国时尚购物网站
2018/03/27 全球购物
台湾家适得:Homeget
2019/02/11 全球购物
英国信箱在线鲜花速递公司:Bloom & Wild
2019/03/10 全球购物
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
营销与策划个人求职信
2013/09/22 职场文书
成龙洗发水广告词
2014/03/14 职场文书
《海伦?凯勒》教学反思
2014/04/17 职场文书
毕业生捐书活动倡议书
2015/04/27 职场文书
社区党务工作总结2015
2015/05/19 职场文书
新闻发布会新闻稿
2015/07/17 职场文书
公司考勤管理制度
2015/08/04 职场文书
星际争霸 Light vs Action 一场把教主看到鬼畜的比赛
2022/04/01 星际争霸
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python