Jcrop最新手册

目录

Jcrop简介

Jcrop 是一个功能强大的 jQuery 图像裁剪插件,结合后端程序(例如:PHP)可以快速的实现图片裁剪的功能。

Jcrop是一款免费的软件,采用MIT License发布。

注:本文主要围绕 Jcrop v2.0.0-RC1 版本进行介绍,一些参数或API在 Jcrop v0.9.12 及之前版本中可能并不支持。

版本

Jcrop v0.9.12 支持画一个框截取图片。

Jcrop v2.0.0-RC1 相比于老版本,新增了支持画多框的功能。

下载地址:

http://jcrop.org/download

下载对应版本的压缩包。

压缩包中有demo目录,其中有多种应用场景的范例,可以参考。

使用方法

载入CSS文件

<link rel="stylesheet" href="Jcrop.css">

载入Javascript文件

<script src="jquery.js"></script> 
<script src="Jcrop.js"></script>

给IMG标签加上ID

<img id="element_id" src="pic.jpg">

调用Jcrop

$(‘#element_id‘).Jcrop();

参数说明

下表为Jcrop对象的主要参数:

属性类别 名称 默认值 说明
选中框属性 edge { n: 0, s: 0, e: 0, w: 0 } 设置框的四条边界线的粗细
例:
cb.setOptions({ edge: {n: 15, e: -20, s: -40, w: 28}});
setSelect null 设置一个框,参数应该分别为这个框的左上角x坐标,左上角y坐标,宽度,高度
例:
cb.setSelect([ 147, 55, 456, 390 ]);
linked TRUE 是否连接
linkedCurrent TRUE 是否连接当前选中框
canDelete TRUE 允许删除框
canSelect TRUE 允许选中框
canDrag TRUE 允许拖拽框
canResize TRUE 允许放大缩小框
子组件 eventManagerComponent Jcrop.component.EventManager 事件管理组件
keyboardComponent Jcrop.component.Keyboard 键盘事件响应组件
dragstateComponent Jcrop.component.DragState 拖拽状态组件
stagemanagerComponent Jcrop.component.StageManager stage管理组件
animatorComponent Jcrop.component.Animator 动画处理组件
selectionComponent Jcrop.component.Selection 选中框管理组件
stageConstructor Jcrop.stageConstructor stage对象构造器
stage属性 allowSelect TRUE 允许选新框
multi FALSE 允许画多个框
multiMax FALSE 最大框数
multiCleanup TRUE 允许清除所有框
animation TRUE 允许动画效果
animEasing swing‘ 动画效果类型
animDuration 400 动画持续时间
fading TRUE 允许淡入淡出效果
fadeDuration 300 淡入淡出持续时间
fadeEasing swing‘ 淡入淡出类型
bgColor black‘ 背景颜色
bgOpacity 0.5 背景透明度
启动选项 applyFilters [ ‘constrain‘, ‘extent‘, ‘backoff‘, ‘ratio‘, ‘shader‘, ‘round‘ ] 应用过滤器
borders  [ ‘e‘, ‘w‘, ‘s‘, ‘n‘ ] 边框
handles  [ ‘n‘, ‘s‘, ‘e‘, ‘w‘, ‘sw‘, ‘ne‘, ‘nw‘, ‘se‘ ] 句柄
dragbars [ ‘n‘, ‘e‘, ‘w‘, ‘s‘ ] 拖拽栏
dragEventTarget window 拖拽事件目标
xscale 1 x方向比例
yscale 1 y方向比例
boxWidth null box宽度
boxHeight null box高度

API

下表为Jcrop对象的主要API:

名称 说明
init 初始化Jcrop对象
destroy 销毁Jcrop对象
applySizeConstraints 应用大小限制条件
initComponent 初始化指定子组件
setOptions 设置选项参数
例:
cb.setOptions({ allowSelect: true, multi: false });
applyFilters 应用过滤器
getDefaultFilters 获取默认过滤器
setSelection 设置选中框
getSelection 获取选中框
newSelection 创建一个新的选中框
hasSelection 判断是否有选中框
removeSelection 移除选中框
addFilter 添加过滤器
removeFilter 移除过滤器
blur 不聚焦选中框
focus 聚焦选中框
initEvents 初始化事件
maxSelect 设置选中框的最大宽度和高度
refresh 刷新所有框
blurAll 所有框都取消聚焦
scale 框按照比例调整
unscale scale的反向操作
deleteSelection 删除选中框,并聚焦在最早创建的框上
animateTo 以动画的形式生成一个新的框
setSelect 设置框
getContainerSize 获取容器的尺寸
resizeContainer 调整容器的宽度和高度
setImage 设置Jcrop绑定的图像,可以用这个函数更换图片
update 更新框

范例代码解读

这部分内容是对于Jcrop2中的demo核心代码进行注释讲解。详细内容请参考对于demo的注释内容

注:以下所示的代码都是在 Jcrop v2.0.0-RC1 版本的demo代码基础上提炼了核心代码。替换原目录下的代码就可以直接运行。

basic.html

这个demo演示了最基本的功能。可以在图片上拖拽、拉伸框并实时显示坐标。

box-sizing.html 代码与 basic.html 基本相同,只是增加了设置框的大小,所以合并在一处讲解。

<!DOCTYPE html>
<html lang="en">
  <head>
    <script src="../js/jquery.min.js"></script>
    <script src="../js/Jcrop.js"></script>
    <script type="text/javascript">
      jQuery(function($){
        var d = document, ge = ‘getElementById‘;
        
        // cropmove事件是指拖动、拖拽框的动作
        // 本函数的作用是每次对于框的变化,都记录其坐标变化,并记录下来
        $(‘#interface‘).on(‘cropmove‘,function(e,s,c){
          d[ge](‘crop-x‘).value = c.x;
          d[ge](‘crop-y‘).value = c.y;
          d[ge](‘crop-w‘).value = c.w;
          d[ge](‘crop-h‘).value = c.h;
        });
        
        // cropend事件是指拖动、拖拽框的动作结束
        // 当拖拽或拉伸框的动作结束,松开鼠标时,弹出提示框显示最终坐标
        $(‘#interface‘).on(‘cropend‘,function(e,s,c){
          d[ge](‘crop-x‘).value = c.x;
          d[ge](‘crop-y‘).value = c.y;
          d[ge](‘crop-w‘).value = c.w;
          d[ge](‘crop-h‘).value = c.h;
          alert("x : " + parseInt(c.x) + ", y : " + parseInt(c.y) + ", w : " + parseInt(c.w) + ", h : " + parseInt(c.h));
        });
        
        // Most basic attachment example
        $(‘#target‘).Jcrop({
          boxWidth: 750,    // 设置框的最大宽度
          setSelect: [ 175, 100, 400, 300 ]
        });
        
        $(‘#text-inputs‘).on(‘change‘,‘input‘,function(e){
          $(‘#target‘).Jcrop(‘api‘).animateTo([
            parseInt(d[ge](‘crop-x‘).value),
            parseInt(d[ge](‘crop-y‘).value),
            parseInt(d[ge](‘crop-w‘).value),
            parseInt(d[ge](‘crop-h‘).value)
          ]);
        });
        
      });
      
    </script>
    <link rel="stylesheet" href="demo_files/main.css">
    <link rel="stylesheet" href="demo_files/demos.css">
    <link rel="stylesheet" href="../css/Jcrop.css">
    <style>
      #text-inputs { margin: 10px 8px 0; }
      .input-group { margin-right: 1.5em; }
      .nav-box { width: 750px; padding: 0 !important; margin: 4px 0; background-color: #f8f8f7; }
      
    </style>
  </head>
  <body>
    <div class="container">
      <div class="row">
        <div class="span12">
          <div class="jc-demo-box">
            <div id="interface" class="page-interface"><img src="http://jcrop-cdn.tapmodo.com/assets/images/sierra2-750.jpg" id="target"></div>
            <div class="nav-box">
              <form onsubmit="return false;" id="text-inputs"><span class="input-group"><b>X</b>
                  <input type="text" name="cx" id="crop-x" class="span1"></span><span class="input-group"><b>Y</b>
                  <input type="text" name="cy" id="crop-y" class="span1"></span><span class="input-group"><b>W</b>
                  <input type="text" name="cw" id="crop-w" class="span1"></span><span class="input-group"><b>H</b>
                  <input type="text" name="ch" id="crop-h" class="span1"></span>
              </form>
            </div>
            <div class="clearfix"></div>
          </div>
        </div>
      </div>
    </div>
  </body>
</html>

时间: 2024-10-16 17:52:52

Jcrop最新手册的相关文章

OpenCart本地调试环境搭建

OpenCart简介: 免费开源网络版电子商务系统,是建立在线商务网站首选之一.有众多用户和开发基础,结合其丰富特性与模板插件,可最大化定制在线商店.(也就是用来方便开网店的) 本地调试准备: Firefox浏览器 安装思路: 进官网看看有没有安装帮助->安装帮助下载环境&源代码->配置环境->成功运行 安装开始: 首先进官网 http://www.opencartchina.com/ 看到帮助手册就点进去,下载最新手册(pdf).看看这个也行 打开pdf,书签找到电脑本地Ope

jQuery免费资料

 JQvery免豆.pdf jQuery实战之仿flash跳动的按钮效果[源码]http://down.51cto.com/data/188600JQuery 1.4.2 手册简体中文版http://down.51cto.com/data/124390jQuery权威指南pdfhttp://down.51cto.com/data/317525asp.net mvc中很酷的jquery验证插件[源码]http://down.51cto.com/data/187446jQuery中文教程及汉化版ht

最新ThinkPHP3.2.3完全开发手册.chm下载地址(花了3小时制作完成)。

立即下载ThinkPHP3.2.3完全开发手册.chm ThinkPHP是一个快速.简单的基于MVC和面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,尤其注重开发体验和易用性,并且拥有众多的原创功能和特性,为WEB应用开发提供了强有力的支持. 3.2版本则在原来的基础上进行一些架构的调整,引入了命名空间支持和模块化的完善,为大型应用和模块化开发提供了更多的便利. 3.2.3 主要更新 数据库驱动完全用PDO

Git使用手册/Git教程:git fetch 将远程仓库的分支及分支最新版本代码拉取到本地

相关文章: 关于验证是否存在ssh配置以及生成SSH Key的方法可以参照文章:Git使用手册:生成SSH Key 关于SSH Key的使用和公钥在gitHub.gitLab的配置等,请参考文章:Git使用手册:使用SSH Key及配置SSH key公钥 关于GIT 工作区.暂存区.本地仓库.远程仓库的概念及关系,请参考文章:Git使用手册:工作区.暂存区.本地仓库.远程仓库 关于GIT 从远程仓库下载项目到本地工作区的操作,请参考文章:Git使用手册:git clone 克隆下载远程仓库项目工

Android - 小的特点 - 使用最新版本ShareSDK手册分享(分享自己定义的接口)

前太实用Share SDK很快分享,但官员demo快捷共享接口已被设置死,该公司的产品还设计了自己的份额接口,这需要我手动共享. 读了一堆公文,最终写出来,行,废话,进入主题. 之前没实用过ShareSDK分享过的朋友建议先看看官方的文档.不要火急火急的就像照搬官方的demo. 此为文档地址:: http://wiki.sharesdk.cn/Android_高速集成指南 此为官方demo下载地址:http://sharesdk.cn/Download 此为我整合之后的直接分享源代码下载地址:h

oracle11g dataguard 完全手册

一.前言: 网络上关于dataguard的配置文章很多,但是很多打着oracle11g的文章实际都是只能在9 10 上运行,比如FAL_CLIENT在11g中已经废弃,但是现在网络上的文章都是没有标注这一点.而且对于具体含义语焉不详对于新手只能知其然而不知其所以然.这篇文章我就想让像我这样的人对于dataguard配置不仅仅知道怎么配置,还要知道为什么需要这样配置,这样的效果才是最好的. 这篇文章不仅仅是记录如何配置,还介绍了为什么是这样,以及注意要点,我希望这个文章可以作为进行dataguar

《开源分享1》:前端开发必备《Html-CSS中文手册》

一直想做一些优秀的资源分享内容,今天尝试整理了一下,以后会每天抽点时间发一些自认为不错的资料出来.帮助大家提高学习效率. 今天分享的内容:前端开发:<Html-CSS中文手册>! 本手册针对的是已有一定网页设计制作经验的读者.其目的是提供完整清晰的样式表内容的快速索引及进阶帮助.所以对于网页制作和样式表的基础知识,仅简单介绍,恕不赘述. 手册提供了完整的 CSS2.0 的属性(Properties).规则(At-Rules).伪类(Pseudo-Classes).伪元素(Pseudo-Elem

DPDK17.02入门手册

Linux环境下DPDK入门 Release 17.02.0 目录 Linux环境下DPDK入门... 1 1       引言... 2 2       资料集... 2 3       系统需求... 2 3.1        x86平台的先决条件BIOS设置... 2 3.2        编译DPDK. 3 3.3        运行DPDK程序... 3 4       编译DPDK源码... 5 4.1        安装DPDK和浏览源码... 5 4.2        安装DPD

开源资产管理软件-GLPI(9.13)操作手册

1.简介 GLPI是法语Gestionnaire libre de parc informatique的缩写,是一款历史悠久的资产管理软件: GLPI提供功能全面的IT资源管理接口,可以用来建立数据库全面管理IT的电脑,显示器,服务器,打印机,网络设备,电话,甚至硒鼓和墨盒等.提供Helpdesk用户支持平台:联系人,合同,合作商,以及文档的管理:提供资源预定,知识库的管理等功能." 日常工作中偶然接触到GLPI,通过安装部署,配置LDAP,Fusioninventory,OCS Invento