Jcropæ¯ä¸ä¸ªåè½å¼ºå¤§çå¾åè£åªå¼æ
Jcropæ¯ä¸ä¸ªåè½å¼ºå¤§çå¾åè£åªå¼æjQueryçã
å®ç设计使å¼å人åå¯ä»¥å¾å®¹æå°ç´æ¥éæäºå è¿çå¾åè£åªåè½éæå°ä»»ä½åºäºWebçåºç¨ç¨åºå¨ä¸çºç²å¨ååçµæ´»æ§ï¼æç¼ç ï¼æµè¯åè°è¯çææï¼ãJcropè¿è®¾æå¹²åï¼ç»ç»è¯å¥½ç代ç ï¼å¨å¤§å¤æ°ç°ä»£çwebæµè§å¨ææå¾å¥½ã
å¨<HEAD>ä½ éè¦å è½½å¿
è¦æä»¶çé¡µé¢ è¿å
æ¬ï¼
jQueryåº
JcropçJavascript
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" />
å ¥é¨ç¬¬ä¸ä¸ªç®åç¹çDemo:
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Insert title here</title>
- <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
- <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
- <script src="js/jquery.Jcrop.min.js"></script>
- <link rel="stylesheet" href="css/jquery.Jcrop.css" type="text/css" />
- <script>
- jQuery(function(){
- jQuery('#user_preview_img').Jcrop({
- trackDocument: true
- });
- });
- </script>
- </head>
- <body>
- <img alt="" src="images/area1/1.jpg" id="user_preview_img">
- </body>
- </html>
ææå¾ï¼
jcropç®åçäºä»¶å¤çDemo:
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Insert title here</title>
- <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
- <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
- <script src="js/jquery.Jcrop.min.js"></script>
- <link rel="stylesheet" href="css/jquery.Jcrop.css" type="text/css" />
- <script>
- jQuery(document).ready(function(){
- jQuery('#user_preview_img').Jcrop({
- onChange: showCoords,
- onSelect: showCoords
- });
- });
- // Simple event handler, called from onChange and onSelect
- // event handlers, as per the Jcrop invocation above
- function showCoords(c)
- {
- jQuery('#x1').val(c.x);
- jQuery('#y1').val(c.y);
- jQuery('#x2').val(c.x2);
- jQuery('#y2').val(c.y2);
- jQuery('#w').val(c.w);
- jQuery('#h').val(c.h);
- };
- </script>
- </head>
- <body>
- <div><img alt="" src="images/area1/1.jpg" id="user_preview_img"></div>
- <form onsubmit="return false;" class="coords">
- <label>X1 <input type="text" size="4" id="x1" name="x1" /></label>
- <label>Y1 <input type="text" size="4" id="y1" name="y1" /></label>
- <label>X2 <input type="text" size="4" id="x2" name="x2" /></label>
- <label>Y2 <input type="text" size="4" id="y2" name="y2" /></label>
- <label>W <input type="text" size="4" id="w" name="w" /></label>
- <label>H <input type="text" size="4" id="h" name="h" /></label>
- </form>
- </body>
- </html>
ææå¾ï¼
jcropå®ä¾æ¼ç¤ºDemo3ï¼
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Insert title here</title>
- <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
- <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
- <script src="js/jquery.Jcrop.min.js"></script>
- <link rel="stylesheet" href="css/jquery.Jcrop.css" type="text/css" />
- <script>
- jQuery(document).ready(function(){
- jQuery('#user_preview_img').Jcrop({
- onChange: showCoords,
- onSelect: showCoords,
- bgColor: 'red',
- bgOpacity: .4,
- setSelect: [ 100, 100, 50, 50 ],
- aspectRatio: 16 / 9
- });
- });
- // Simple event handler, called from onChange and onSelect
- // event handlers, as per the Jcrop invocation above
- function showCoords(c)
- {
- jQuery('#x1').val(c.x);
- jQuery('#y1').val(c.y);
- jQuery('#x2').val(c.x2);
- jQuery('#y2').val(c.y2);
- jQuery('#w').val(c.w);
- jQuery('#h').val(c.h);
- };
- </script>
- </head>
- <body>
- <div><img alt="" src="images/area1/1.jpg" id="user_preview_img"></div>
- <form onsubmit="return false;" class="coords">
- <label>X1 <input type="text" size="4" id="x1" name="x1" /></label>
- <label>Y1 <input type="text" size="4" id="y1" name="y1" /></label>
- <label>X2 <input type="text" size="4" id="x2" name="x2" /></label>
- <label>Y2 <input type="text" size="4" id="y2" name="y2" /></label>
- <label>W <input type="text" size="4" id="w" name="w" /></label>
- <label>H <input type="text" size="4" id="h" name="h" /></label>
- </form>
- </body>
- </html>
ææå¾ï¼
Jcropå®ä¾Demo4:
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
- <title>Insert title here</title>
- <script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
- <script src="http://code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
- <script src="js/jquery.Jcrop.min.js"></script>
- <link rel="stylesheet" href="css/jquery.Jcrop.css" type="text/css" />
- <script type="text/javascript">
- jQuery(function($){
- // Create variables (in this scope) to hold the API and image size
- var jcrop_api,
- boundx,
- boundy,
- // Grab some information about the preview pane
- $preview = $('#preview-pane'),
- $pcnt = $('#preview-pane .preview-container'),
- $pimg = $('#preview-pane .preview-container img'),
- xsize = $pcnt.width(),
- ysize = $pcnt.height();
- console.log('init',[xsize,ysize]);
- $('#user_preview_img').Jcrop({
- onChange: updatePreview,
- onSelect: updatePreview,
- aspectRatio: xsize / ysize
- },function(){
- // Use the API to get the real image size
- var bounds = this.getBounds();
- boundx = bounds[0];
- boundy = bounds[1];
- // Store the API in the jcrop_api variable
- jcrop_api = this;
- // Move the preview into the jcrop container for css positioning
- $preview.appendTo(jcrop_api.ui.holder);
- });
- function updatePreview(c)
- {
- if (parseInt(c.w) > 0)
- {
- var rx = xsize / c.w;
- var ry = ysize / c.h;
- $pimg.css({
- width: Math.round(rx * boundx) + 'px',
- height: Math.round(ry * boundy) + 'px',
- marginLeft: '-' + Math.round(rx * c.x) + 'px',
- marginTop: '-' + Math.round(ry * c.y) + 'px'
- });
- }
- };
- });
- </script>
- <style type="text/css">
- /* Apply these styles only when #preview-pane has
- been placed within the Jcrop widget */
- .jcrop-holder #preview-pane {
- display: block;
- position: absolute;
- z-index: 2000;
- top: 10px;
- right: -280px;
- padding: 6px;
- border: 1px rgba(0,0,0,.4) solid;
- background-color: white;
- -webkit-border-radius: 6px;
- -moz-border-radius: 6px;
- border-radius: 6px;
- -webkit-box-shadow: 1px 1px 5px 2px rgba(0, 0, 0, 0.2);
- -moz-box-shadow: 1px 1px 5px 2px rgba(0, 0, 0, 0.2);
- box-shadow: 1px 1px 5px 2px rgba(0, 0, 0, 0.2);
- }
- /* The Javascript code will set the aspect ratio of the crop
- area based on the size of the thumbnail preview,
- specified here */
- #preview-pane .preview-container {
- width: 250px;
- height: 170px;
- overflow: hidden;
- }
- </style>
- </head>
- <body>
- <div><img alt="" src="images/area1/1.jpg" id="user_preview_img"></div>
- <div id="preview-pane">
- <div class="preview-container">
- <img src="images/area1/1.jpg" class="jcrop-preview" alt="Preview" />
- </div>
- </div>
- </body>
- </html>
ææå¾:
注æï¼æå
³è¿äºé项çå¯¹è±¡çæ ¼å¼çå ä»¶äºæ
ï¼
ææ¬å¼å¿
é¡»å å¼å·ï¼å¦'红'ï¼'ï¼CCCâï¼âRGBï¼10,10,10ï¼'ï¼
æ°å¼ï¼å
æ¬å°æ°ç¹ï¼ä¸åºè¯¥è¢«å¼ç¨ã
setSelect带æä¸ä¸ªæ°ç»ï¼è¿é表示为ä¸ä¸ªæ°ç»ææ¬
aspectRatioå¯è½æ¯æç®åçé¤ä»¥å®½åº¦/é«åº¦è®¾ç½®
å颿²¡æéå·çæåä¸ä¸ªé项
jQuery(function(){
});
å
¨å为
jQuery(document).ready(function(){
});
3.常ç¨é项设置
aspectRatio:éä¸åºåæå®½/髿¯ï¼ä¸º1è¡¨ç¤ºæ£æ¹å½¢ã
minSize:æå°ç宽ï¼é«å¼ã
maxSize:æå¤§ç宽ï¼é«å¼ã
setSelect:设置åå§éä¸åºåã
bgColor:èæ¯é¢è²
bgOpacity:èæ¯éæåº¦ã
allowResize:æ¯å¦å
许æ¹åéä¸åºå大å°ã
allowMove:æ¯å¦å
许移å¨éä¸åºåã
- $( function() {
- $("#demoImage").Jcrop({
- aspectRatio: 1, //éä¸åºå宽髿¯ä¸º1ï¼å³éä¸åºåä¸ºæ£æ¹å½¢
- bgColor:"#ccc", //è£åªæ¶èæ¯é¢è²è®¾ä¸ºç°è²
- bgOpacity:0.1, //éæåº¦è®¾ä¸º0.1
- allowResize:false, //ä¸å 许æ¹åéä¸åºåç大å°
- setSelect:[0,0,100,100] //åå§åéä¸åºå
- }
- );
- }
- );
4.apiç¨æ³
api.disable(); //设置为ç¦ç¨è£åªææ
api.enable(); //设置为å¯ç¨è£åªææ
api.setOptions({allowResize:false});//设置ç¸åºé ç½®
api.setSelect([0,0,100,100]); //设置éä¸åºå
- $( function() {
- //äºä»¶å¤ç
- $("#demoImage").Jcrop(
- {
- onChange:showCoords, //å½éæ©åºåååçæ¶åï¼æ§è¡å¯¹åºçåè°å½æ°
- onSelect:showCoords //å½éä¸åºåçæ¶åï¼æ§è¡å¯¹åºçåè°å½æ°
- }
- );
- }
- );
- function showCoords(c) {
- $("#txtX1").val(c.x); //å¾å°éä¸åºåå·¦ä¸è§æ¨ªåæ
- $("#txtY1").val(c.y); //å¾å°éä¸åºåå·¦ä¸è§çºµåæ
- $("#txtX2").val(c.x2); //å¾å°éä¸åºåå³ä¸è§æ¨ªåæ
- $("#txtY2").val(c.y2); //å¾å°éä¸åºåå³ä¸è§çºµåæ
- $("#txtWidth").val(c.w); //å¾å°éä¸åºåç宽度
- $("#txtHeight").val(c.h); //å¾å°éä¸åºåçé«åº¦
- }