详细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的deferred对象使用详解
Aug 20 Javascript
JS控制文本框textarea输入字数限制的方法
Jun 17 Javascript
JS的事件绑定深入认识
Jun 26 Javascript
js表单登陆验证示例
Oct 19 Javascript
jQuery+ThinkPHP+Ajax实现即时消息提醒功能实例代码
Mar 21 jQuery
微信小程序自定义模态对话框实例详解
Aug 16 Javascript
vue.js实现插入数值与表达式的方法分析
Jul 06 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
Oct 25 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
Apr 04 Javascript
JavaScript语句错误throw、try及catch实例解析
Aug 18 Javascript
js实现简单抽奖功能
Nov 24 Javascript
Vue实现小购物车功能
Dec 21 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常用代码大全(新手入门必备)
2010/06/29 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
浅析php如何实现爬取数据原理
2018/09/27 PHP
Aster vs Newbee BO5 第三场2.19
2021/03/10 DOTA
清除网页历史记录,屏蔽后退按钮!
2008/12/22 Javascript
HTML中的setCapture和releaseCapture使用介绍
2012/03/21 Javascript
jQuery删除节点的三个方法即remove()detach()和empty()
2013/12/27 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
jquery代码实现简单的随机图片瀑布流效果
2015/04/20 Javascript
jquery插件方式实现table查询功能的简单实例
2016/06/06 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
浅谈JavaScript事件绑定的常用方法及其优缺点分析
2016/11/01 Javascript
详解jQuery简单的表单应用
2016/12/16 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
关于Vue Webpack2单元测试示例详解
2017/08/14 Javascript
通过js给网页加上水印背景实例
2019/06/17 Javascript
微信小程序下拉框搜索功能的实现方法
2019/07/31 Javascript
解决Layui数据表格显示无数据提示的问题
2019/11/14 Javascript
JavaScript arguments.callee作用及替换方案详解
2020/09/02 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
[45:40]Ti4 冒泡赛第二天NEWBEE vs NaVi 1
2014/07/15 DOTA
python sys模块sys.path使用方法示例
2013/12/04 Python
python subprocess 杀掉全部派生的子进程方法
2017/01/16 Python
python cx_Oracle模块的安装和使用详细介绍
2017/02/13 Python
Python箱型图绘制与特征值获取过程解析
2019/10/22 Python
基于python读取.mat文件并取出信息
2019/12/16 Python
解决在keras中使用model.save()函数保存模型失败的问题
2020/05/21 Python
python设置中文界面实例方法
2020/10/27 Python
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
公积金单位接收函
2014/01/11 职场文书
2014年团队工作总结
2014/11/24 职场文书
晚会开幕词范文
2016/03/04 职场文书
nginx配置proxy_pass中url末尾带/与不带/的区别详解
2021/03/31 Servers
python pyhs2 的安装操作
2021/04/07 Python