详细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 cookie操作类的实现代码小结附使用方法
Jun 02 Javascript
JS注释所产生的bug 即使注释也会执行
Nov 19 Javascript
jQuery使用prepend()方法在元素前添加内容用法实例
Mar 26 Javascript
js限制文本框只能输入整数或者带小数点的数字
Apr 27 Javascript
JavaScript实现点击自动选择TextArea文本的方法
Jul 02 Javascript
Jquery基础教程之DOM操作
Aug 19 Javascript
微信小程序 实战实例开发流程详细介绍
Jan 05 Javascript
微信小程序实现带刻度尺滑块功能
Mar 29 Javascript
jQuery使用eraser.js插件实现擦除、刮刮卡效果的方法【附eraser.js下载】
Apr 28 jQuery
脚手架vue-cli工程webpack的基本用法详解
Sep 29 Javascript
微信小程序image图片加载完成监听
Aug 31 Javascript
vue中使用vee-validator完成表单校验方案
Nov 01 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的ob_start() 控制您的浏览器cache
2009/08/03 PHP
php面向对象全攻略 (十五) 多态的应用
2009/09/30 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
全面解析PHP操作Memcache基本函数
2016/07/14 PHP
PHP完全二叉树定义与实现方法示例
2017/10/09 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
Javascript 解疑
2009/11/11 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
复选框全选与全不选操作实现思路
2013/08/18 Javascript
下拉列表选择项的选中在不同浏览器中的兼容性问题探讨
2013/09/18 Javascript
jquery ajax 调用失败的原因示例介绍
2013/09/27 Javascript
JS实现让访问者自助选择网页文字颜色的方法
2015/02/24 Javascript
探析浏览器执行JavaScript脚本加载与代码执行顺序
2016/01/12 Javascript
ES6学习教程之对象的扩展详解
2017/05/02 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
dropload.js插件下拉刷新和上拉加载使用详解
2017/10/20 Javascript
jquery实现吸顶导航效果
2020/01/08 jQuery
[47:18]完美世界DOTA2联赛循环赛 IO vs FTD BO2第一场 11.05
2020/11/06 DOTA
Python中的面向对象编程详解(上)
2015/04/13 Python
python框架django基础指南
2016/09/08 Python
Python实现随机生成有效手机号码及身份证功能示例
2017/06/05 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
使用pandas库对csv文件进行筛选保存
2020/05/25 Python
openCV提取图像中的矩形区域
2020/07/21 Python
澳大利亚领先的优质葡萄酒拍卖会:Langton’s Fine Wines
2019/03/24 全球购物
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
法国春天百货官网:Printemps.com
2020/06/29 全球购物
网络维护管理员的自我评价分享
2013/11/11 职场文书
写求职信要注意什么问题
2014/04/12 职场文书
应届生求职自荐信
2014/07/04 职场文书
四风自我剖析材料
2014/09/30 职场文书
个人融资协议书
2014/10/02 职场文书
幼儿园小班开学寄语
2015/05/27 职场文书
Python绘制分类图的方法
2021/04/20 Python