jQuery头像裁剪工具jcrop用法实例(附演示与demo源码下载)


Posted in Javascript onJanuary 22, 2016

本文实例讲述了jQuery头像裁剪工具jcrop用法。分享给大家供大家参考,具体如下:

头像裁剪工具目前比较流行的是flash和jquery的。个人觉得用jquery的比较好,因为代码仔细研究一下,基本上能明白怎么回事,想改的话也比较容易。

有一个例子,请参考:jcrop例子demo ,是根jcrop的例子改的,添加以下二个特点:

1,居中显示,并且可拖拉,改变截取的大小
2,预览的图片,根拖拉的大小成比例。

以下是js代码,作了简单的封装

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <meta http-equiv="Content-type" content="text/html;charset=UTF-8" /> 
  <title>jcrop 图片拖动</title>
  <script src="jquery.min.js" type="text/javascript"></script>
  <script src="jquery.Jcrop.min.js" type="text/javascript"></script>
  <link rel="stylesheet" href="jquery.Jcrop.css" type="text/css" />
  <link rel="stylesheet" href="demos.css" type="text/css" />
 </head>
 <body>
 <div id="outer">
 <div class="jcExample">
 <div class="article">
  <h1>上传头像拖动例子</h1>
  <table>
   <tr>
    <td>
     <img src="sago.jpg" id="target" alt="Flowers" />
    </td>
    <td>
     <div style="width:100px;height:100px;overflow:hidden;" id="aa">
      <img src="sago.jpg" id="preview" alt="Preview" class="jcrop-preview" />
     </div>
    </td>
   </tr>
  </table>
 </div>
 </div>
 </div>
 </body>
<script type="text/javascript">
new cutImage().init();
function cutImage(){
  var oop = this;
  this.option = {
    x:170,
    y:110,
    w:350,
    h:200,
    t:'target',
    p:'preview',
    o:'aa'
  }
  this.init = function(){
    oop.target();
  }
  this.target = function(){
   $('#'+oop.option['t']).Jcrop({
     onChange: oop.updatePreview,
     onSelect: oop.updatePreview,
     aspectRatio: 1,
     setSelect: [ oop.option['x'], oop.option['y'], oop.option['w'],oop.option['h'] ],
     bgFade:   true,
     bgOpacity: .5
    });
  }
  this.updatePreview = function(obj){
    if (parseInt(obj.w) > 0)
    {
     var rx = $('#'+oop.option['o']).width()/ obj.w;
     var ry = $('#'+oop.option['o']).height()/ obj.h;
     $('#'+oop.option['p']).css({
      width: Math.round(rx*$('#'+oop.option['t']).width()) + 'px',
      height: Math.round(ry*$('#'+oop.option['t']).height()) + 'px',
      marginLeft: '-' + Math.round(rx * obj.x) + 'px',
      marginTop: '-' + Math.round(ry * obj.y) + 'px'
     });
    }
  }
}
</script>
</html>

jquery jcrop结合jquery ajax upload的话,可以使头像上传截取功能,很人性化。

完整实例代码点击此处本站下载。

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
HTML IMG标签 onload 内存溢出导致浏览器CPU占用过高
Mar 09 Javascript
js window.event对象详尽解析
Feb 17 Javascript
javascript 得到文件后缀名的思路及实现
May 09 Javascript
js定时调用方法成功后并停止调用示例
Apr 08 Javascript
jQuery获取选中内容及设置元素属性的方法
Jul 09 Javascript
在HTML中插入JavaScript代码的示例
Jun 03 Javascript
由浅入深剖析Angular表单验证
Jul 14 Javascript
详解前端自动化工具gulp自动添加版本号
Dec 20 Javascript
Angular实现图片裁剪工具ngImgCrop实践
Aug 17 Javascript
JavaScript实现区块链
Mar 14 Javascript
vue服务端渲染添加缓存的方法
Sep 18 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
Jun 05 Javascript
JavaScript学习笔记整理之引用类型
Jan 22 #Javascript
jQuery弹层插件jquery.fancybox.js用法实例
Jan 22 #Javascript
基于JS实现新闻列表无缝向上滚动实例代码
Jan 22 #Javascript
jQuery validate插件实现ajax验证重复的2种方法
Jan 22 #Javascript
jQuery禁用键盘后退屏蔽F5刷新及禁用右键单击
Jan 22 #Javascript
如何利用JS通过身份证号获取当事人的生日、年龄、性别
Jan 22 #Javascript
jQuery解析json格式数据简单实例
Jan 22 #Javascript
You might like
关于拼配咖啡,你要知道
2021/03/03 咖啡文化
多个Laravel项目如何共用migrations详解
2018/09/25 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
动手学习无线电
2021/03/10 无线电
input按钮的事件处理大全
2010/12/10 Javascript
javascript history对象(历史记录)使用方法(实现浏览器前进后退)
2014/01/07 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
nodejs中的fiber(纤程)库详解
2015/03/24 NodeJs
Javascript闭包(Closure)详解
2015/05/05 Javascript
jQuery结合ajax实现动态加载文本内容
2015/05/19 Javascript
JavaScript 七大技巧(二)
2015/12/13 Javascript
JavaScript学习笔记之创建对象
2016/03/25 Javascript
Jquery 整理元素选取、常用方法一览表
2016/11/26 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
jQuery实现切换隐藏与显示同时切换图标功能
2017/10/29 jQuery
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
浅谈vue的几种绑定变量的值 防止其改变的方法
2018/03/01 Javascript
Vue props 单向数据流的实现
2018/11/06 Javascript
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
jQuery实现可以扩展的日历
2020/12/01 jQuery
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
python遍历文件夹,指定遍历深度与忽略目录的方法
2018/07/11 Python
Python 使用 Pillow 模块给图片添加文字水印的方法
2019/08/30 Python
pytorch逐元素比较tensor大小实例
2020/01/03 Python
Pytorch DataLoader 变长数据处理方式
2020/01/08 Python
Pycharm+Python工程,引用子模块的实现
2020/03/09 Python
python实现猜数游戏
2020/03/27 Python
Pycharm2020.1安装中文语言插件的详细教程(不需要汉化)
2020/08/07 Python
HTML5如何为形状图上颜色怎么绘制具有颜色和透明度的矩形
2014/06/23 HTML / CSS
美国爆米花工厂:The Popcorn Factory
2019/09/14 全球购物
医学院学生求职简历的自我评价
2013/10/24 职场文书
办公室岗位职责
2015/02/04 职场文书
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
JS实现九宫格拼图游戏
2022/06/28 Javascript
spring 项目实现限流方法示例
2022/07/15 Java/Android
Python创建SQL数据库流程逐步讲解
2022/09/23 Python