详细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 学习笔记 防止发生命名冲突
Jul 30 Javascript
Jquery+ajax请求data显示在GridView上(asp.net)
Aug 27 Javascript
js对象内部访问this修饰的成员函数示例
Apr 27 Javascript
微信小程序中单位rpx和rem的使用
Dec 06 Javascript
Input文本框随着输入内容多少自动延伸的实现
Feb 15 Javascript
微信小程序表单验证错误提示效果
May 19 Javascript
angularjs $http实现form表单提交示例
Jun 09 Javascript
JS实现留言板功能[楼层效果展示]
Dec 27 Javascript
Vue数据监听方法watch的使用
Mar 28 Javascript
JS异步错误捕获的一些事小结
Apr 26 Javascript
Vue的props父传子的示例代码
May 20 Javascript
利用webpack理解CommonJS和ES Modules的差异区别
Jun 16 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中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
thinkphp微信开之安全模式消息加密解密不成功的解决办法
2015/12/02 PHP
Symfony核心类概述
2016/03/17 PHP
Jquery 学习笔记(一)
2009/10/13 Javascript
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
探讨javascript是不是面向对象的语言
2013/11/21 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
JavaScript实现点击按钮就复制当前网址
2015/12/14 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
微信小程序(应用号)开发新闻客户端实例
2016/10/24 Javascript
详解如何使用webpack+es6开发angular1.x
2017/08/16 Javascript
angularjs 获取默认选中的单选按钮的value方法
2018/02/28 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
2018/05/17 Javascript
vue.js提交按钮时进行简单的if判断表达式详解
2018/08/08 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
python爬取个性签名的方法
2018/06/17 Python
Python如何爬取微信公众号文章和评论(基于 Fiddler 抓包分析)
2019/06/28 Python
详解Python 字符串相似性的几种度量方法
2019/08/29 Python
python实现将字符串中的数字提取出来然后求和
2020/04/02 Python
python3爬虫中引用Queue的实例讲解
2020/11/24 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
使用html2canvas将页面转成图并使用用canvas2image下载
2019/04/04 HTML / CSS
Oakley官网:运动太阳镜、雪镜和服装
2016/09/30 全球购物
运动鞋、街头服装、手表和手袋的实时市场:StockX
2020/11/25 全球购物
写自荐信三大法宝
2014/01/24 职场文书
主管会计岗位职责
2014/03/13 职场文书
小学生暑假家长评语
2014/04/17 职场文书
大学社团计划书
2014/05/01 职场文书
2014年业务员工作总结范文
2014/11/17 职场文书
教育实习指导教师评语
2014/12/31 职场文书
2015小学师德工作总结
2015/07/21 职场文书
Nginx配置之实现多台服务器负载均衡
2021/08/02 Servers
详解Vue router路由
2021/11/20 Vue.js
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫
vue实现列表拖拽排序的示例代码
2022/04/08 Vue.js