The example in this article describes the usage of jQuery avatar cropping tool jcrop. Share it with everyone for your reference, the details are as follows:
The most popular avatar cropping tools are flash and jquery. Personally, I think it's better to use jquery, because if you study the code carefully, you can basically understand what's going on, and it's easier to change it if you want to.
There is an example, please refer to: jcrop example demo, which is modified from the jcrop example and adds the following two features:
1, displayed in the center, and can be dragged to change the size of the interception
2. The previewed picture is proportional to the size of the root drag.
The following is the js code, which is simply encapsulated
<!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>
If jquery jcrop is combined with jquery ajax upload, the avatar upload and interception function can be used, which is very user-friendly.
Click here for the complete example codeDownload from this site.
Readers who are interested in more content related to jQuery plug-ins can check out the special topic of this site: "Summary of common jQuery plug-ins and usage"
I hope this article will be helpful to everyone in jQuery programming.