Jcrop是一款跨浏览器的jquery图片剪裁插件。它兼容非常古老的ie6浏览器,并提供多个配置参数,实现功能强大的图片剪裁功能。Jcrop图片剪裁插件的特点还有:

  • 使用简单。
  • 支持按比例锁定剪裁区域。
  • 支持设置最大尺寸和最小尺寸。
  • 剪裁区域选定后或移动时支持回调函数。
  • 支持键盘操作。
  • 提供丰富的API,包括动画。
  • 支持自定义CSS,LESS。
  • 支持移动设备iOS和Android等。

使用方法

在页面中引入jquery和jquery.Jcrop.min.js文件,以及样式文件jquery.Jcrop.css。

<script src='js/jquery.min.js'></script>
<script src='js/jquery.Jcrop.min.js'></script>
<link rel="stylesheet" href="css/jquery.Jcrop.css" type="text/css" />
                
HTML结构

例如要剪裁一张图片如下:

<img src="flowers.jpg" id="target" />
                
初始化插件

在页面DOM元素加载完毕之后,通过下面的方法来初始化Jcrop图片剪裁插件。

<script>
    jQuery(function($) {
        $('#target').Jcrop();
    });
</script>             
                

配置参数

Jcrop图片剪裁插件的可用配置参数有:

参数 类型 默认值 描述
aspectRatio decimal n/a 剪裁区域的宽高比。
minSize array [ w, h ] 剪裁区域最小宽度和高度。 n/a
maxSize array [ w, h ] 剪裁区域最大宽度和高度。 n/a
setSelect array [ x, y, x2, y2 ] 设置一个初始的剪裁区域。 n/a
bgColor 颜色值 设置背景容器的颜色值。 'black'
bgOpacity decimal 0 - 1 剪裁时图片外区域的透明度。 .6

示例:

<script>
    jQuery(function($) {
            $('#target').Jcrop({
                onSelect:    showCoords,
                bgColor:     'black',
                bgOpacity:   .4,
                setSelect:   [ 100, 100, 50, 50 ],
                aspectRatio: 16 / 9
            });
      });
</script>             
                

事件

Jcrop图片剪裁插件的的可用事件(回调函数)有:

  • onSelect:当剪裁区域选择完毕时调用。
  • onChange:当剪裁区域移动时调用。
  • onRelease:当剪裁区域被释放时调用。

例如:定义一个事件处理函数如下:

function showCoords(c)
  {
      // 参数C可以像下面这样使用
      // c.x, c.y, c.x2, c.y2, c.w, c.h
  };                  
                

如下面这样绑定事件处理函数。

jQuery(function($) {
    $('#target').Jcrop({
        onSelect: showCoords,
        onChange: showCoords
    });
});               
                

Jcrop图片剪裁插件的github地址为:https://github.com/tapmodo/Jcrop