詳細AngularJs4的圖片剪裁組件的實例
本文介紹了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);
}
});
接下來就可以寫代碼啦啦啦啦~~
創(chuàng)建一個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);
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
在 Angular-cli 中使用 simple-mock 實現前端開發(fā) API Mock 接口數據模擬功能的方法
這篇文章主要介紹了在 Angular-cli 中使用 simple-mock 實現前端開發(fā) API Mock 接口數據模擬功能的方法,需要的朋友可以參考下2018-11-11

