亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > JavaScript > 正文

jQuery插件jcrop+Fileapi完美實現圖片上傳+裁剪+預覽的代碼分享

2024-05-06 16:18:40
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了jQuery插件jcrop+Fileapi完美實現圖片上傳+裁剪+預覽的代碼,非常的簡單實用,效果也很棒,有需要的小伙伴可以參考下。

網頁端 裁剪圖片,不需要經過服務器。

這個是用https://github.com/mailru/FileAPI框架實現的。配合jcrop.

高級瀏覽器 使用 canvas 裁剪,ie6 7 8使用 flash過度。

核心代碼:

 

 
  1. var el = $('input').get(0); 
  2.  
  3. seajs.use(['gallery/jcrop/0.9.12/jcrop.css','gallery/jcrop/0.9.12/jcrop.js'] ,function(){ 
  4.  
  5. FileAPI.event.on(el, 'change'function (evt){ 
  6. var files = FileAPI.getFiles(evt); // Retrieve file list 
  7.  
  8. FileAPI.filterFiles(files, function (file, info){ 
  9. if( !/^image/.test(file.type) ){ 
  10. alert('圖片格式不正確'); 
  11. return false
  12. else if(file.size > 20 * FileAPI.MB){ 
  13. alert('圖片必須小于20M'); 
  14. return false
  15. else
  16. return true
  17.  
  18. }, function (files, rejected){ 
  19. console.log(files); 
  20.  
  21. if( files.length ){ 
  22. var file = files[0]; 
  23. var img0 = FileAPI.Image(file); 
  24. var img1 = FileAPI.Image(file); 
  25. var ratio = 0; 
  26. FileAPI.getInfo(file, function (err, info) { //get image ratio 
  27. if (!err) { 
  28. if (info.width > info.height) { 
  29. ratio = info.width / 500; 
  30. else { 
  31. ratio = info.height / 500; 
  32. }); 
  33.  
  34. img0.resize(500, 500, 'max'//place image and register jcrop 
  35. .get(function(err, img) { 
  36. $('#img2').empty(); 
  37. $('#img2').append($(img)); 
  38.  
  39. $('#img2').children().Jcrop({ 
  40. aspectRatio: 1, 
  41. bgColor: 'rgba(0,0,0,0.4)'
  42. onSelect: function(c) { 
  43. img1.matrix.sx = c.x * ratio; 
  44. img1.matrix.sy = c.y * ratio; 
  45. img1.matrix.sw = c.w * ratio; 
  46. img1.matrix.sh = c.h * ratio; 
  47. img1.matrix.dw = 500; 
  48. img1.matrix.dh = 500; 
  49.  
  50. img1.get(function(err, img) { 
  51. // $('#img3').empty(); 
  52. // $('#img3').append($(img)); 
  53. $('#img3').html($(img)); 
  54. }); 
  55.  
  56. }); 
  57. }); 
  58. $('#btn').on('click',function(){ 
  59. FileAPI.upload({ 
  60. // url: '/testUpFile/upFile', 
  61. // headers: { 'Content-Type': 'multipart/form-data' }, 
  62. files: { images: img1 }, 
  63. progress: function (evt){ /* ... */ }, 
  64. complete: function (err, xhr){ /* ... */ 
  65. //alert(xhr.responseText); 
  66. console.log(xhr); 
  67. });  
  68. }); 
  69. }); 
  70. }); 
  71. }); 

完整代碼:

 

 
  1. <!DOCTYPE html> 
  2. <html> 
  3. <head> 
  4. <title>TODO supply a title</title> 
  5. <meta charset="UTF-8"
  6. <meta name="viewport" content="width=device-width"
  7. <script src="./jquery.min.js"></script>  
  8. <script src="./jcrop/jquery.Jcrop.min.js"></script> 
  9. <link href="./jcrop/jquery.Jcrop.min.css" rel="stylesheet"
  10. </head> 
  11. <style> 
  12.  
  13. .upload-btn { 
  14. width: 130px; 
  15. height: 25px; 
  16. overflow: hidden; 
  17. position: relative; 
  18. border: 3px solid #06c; 
  19. border-radius: 5px; 
  20. background: #0cf; 
  21.  
  22. .upload-btn:hover { 
  23. background: #09f; 
  24. .upload-btn__txt { 
  25. z-index: 1; 
  26. position: relative; 
  27. color: #fff; 
  28. font-size: 18px; 
  29. font-family: "Helvetica Neue"
  30. line-height: 24px; 
  31. text-align: center; 
  32. text-shadow: 0 1px 1px #000; 
  33. .upload-btn input { 
  34. top: -10px; 
  35. right: -40px; 
  36. z-index: 2; 
  37. position: absolute; 
  38. cursor: pointer; 
  39. opacity: 0; 
  40. filter: alpha(opacity=0); 
  41. font-size: 50px; 
  42.  
  43. </style> 
  44.  
  45.  
  46. <body> 
  47. <div> 
  48. <!-- "js-fileapi-wrapper" -- required class --> 
  49. <div class="js-fileapi-wrapper upload-btn" id="choose"
  50.  
  51. <input name="files" type="file" multiple /> 
  52. <button id="btn">上傳</button> 
  53. </div> 
  54. <div id="images"
  55.  
  56. <p style="margin-top: 40px;"></p> 
  57.  
  58. <div id="img2" ></div> 
  59.  
  60. <div id="img3"></div> 
  61. </div> 
  62.  
  63. </div> 
  64.  
  65. <script>window.FileAPI = { staticPath: './fileapi/' };</script> 
  66. <script src="./fileapi/FileAPI.min.js"></script> 
  67. <script> 
  68.  
  69. var el = $('input').get(0); 
  70.  
  71.  
  72. FileAPI.event.on(el, 'change'function (evt){ 
  73. var files = FileAPI.getFiles(evt); // Retrieve file list 
  74.  
  75. FileAPI.filterFiles(files, function (file, info){ 
  76. if( !/^image/.test(file.type) ){ 
  77. alert('圖片格式不正確'); 
  78. return false
  79. else if(file.size > 20 * FileAPI.MB){ 
  80. alert('圖片必須小于20M'); 
  81. return false
  82. else
  83. return true
  84.  
  85. }, function (files, rejected){ 
  86.  
  87.  
  88. if( files.length ){ 
  89. var file = files[0]; 
  90. var img0 = FileAPI.Image(file); 
  91. var img1 = FileAPI.Image(file); 
  92. var ratio = 0; 
  93. FileAPI.getInfo(file, function (err, info) { //get image ratio 
  94. if (!err) { 
  95. if (info.width > info.height) { 
  96. ratio = info.width / 500; 
  97. else { 
  98. ratio = info.height / 500; 
  99. }); 
  100.  
  101. img0.resize(500, 500, 'max'//place image and register jcrop 
  102. .get(function(err, img) { 
  103. $('#img2').empty(); 
  104. $('#img2').append($(img)); 
  105.  
  106. $('#img2').children().Jcrop({ 
  107. aspectRatio: 1, 
  108. bgColor: 'rgba(0,0,0,0.4)'
  109. onSelect: function(c) { 
  110. img1.matrix.sx = c.x * ratio; 
  111. img1.matrix.sy = c.y * ratio; 
  112. img1.matrix.sw = c.w * ratio; 
  113. img1.matrix.sh = c.h * ratio; 
  114. img1.matrix.dw = 500; 
  115. img1.matrix.dh = 500; 
  116.  
  117. img1.get(function(err, img) { 
  118. // $('#img3').empty(); 
  119. // $('#img3').append($(img)); 
  120. $('#img3').html($(img)); 
  121. }); 
  122.  
  123. }); 
  124. }); 
  125. $('#btn').on('click',function(){ 
  126. FileAPI.upload({ 
  127. url: '/testUpFile/upFile'
  128.  
  129. files: { images: img1 }, 
  130. progress: function (evt){ /* ... */ }, 
  131. complete: function (err, xhr){ /* ... */ 
  132. //alert(xhr.responseText); 
  133.  
  134. }); 
  135.  
  136. }); 
  137.  
  138. }); 
  139. }); 
  140.  
  141. </script> 
  142. </body> 
  143. </html> 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲石原莉奈一区二区在线观看| 欧美华人在线视频| 久久久久久久久久久人体| 欧美性精品220| 国产精品777| 国产精品欧美一区二区| 中文字幕在线观看亚洲| 视频在线观看一区二区| 最近2019中文字幕第三页视频| 在线精品视频视频中文字幕| 日韩在线观看电影| 国产精品久久久久久久av电影| 国产精品第一区| 日韩av男人的天堂| 欧美激情精品久久久久久蜜臀| 国产精品电影观看| 亚洲精品网址在线观看| 亚洲欧美国产精品专区久久| 久久不射电影网| 亚洲国产精品久久| 色偷偷av亚洲男人的天堂| 国产亚洲欧美一区| 亚洲欧洲日产国码av系列天堂| 精品视频在线播放色网色视频| 性夜试看影院91社区| 欧美福利视频在线| 国产精品极品美女粉嫩高清在线| 欧美激情精品久久久久久黑人| 国内精久久久久久久久久人| 亚洲综合大片69999| 欧美日韩亚洲精品一区二区三区| 亚洲精品av在线播放| 69精品小视频| 日韩极品精品视频免费观看| 96精品久久久久中文字幕| 久久久久久久久久久久久久久久久久av| 国产精品久久久久久久7电影| www.日韩视频| 亚洲欧洲视频在线| 亚洲女人天堂av| 亚洲国产欧美一区二区三区同亚洲| 国产999在线| 国产精品久久久久91| 国产精品男人爽免费视频1| 久久久久久尹人网香蕉| 欧美性xxxx极品高清hd直播| 亚洲精品理论电影| 亚洲性69xxxbbb| 中文字幕日韩高清| 亚洲欧美福利视频| 亚洲电影免费观看高清| 亚洲永久在线观看| 久久色在线播放| 亚洲第一精品夜夜躁人人躁| 久久九九全国免费精品观看| 亚洲国产日韩精品在线| 国产精品网站入口| 亚洲午夜av久久乱码| 日韩av免费一区| 日本欧美国产在线| 这里精品视频免费| 日韩成人在线视频网站| 国产亚洲精品成人av久久ww| 日韩久久午夜影院| 亚洲专区国产精品| 精品电影在线观看| 51视频国产精品一区二区| 成人妇女免费播放久久久| 18久久久久久| 26uuu日韩精品一区二区| 久久免费精品日本久久中文字幕| 亚洲国产精品久久精品怡红院| 欧美一区二粉嫩精品国产一线天| 久久精品一本久久99精品| 97在线免费观看| 亚洲欧美日本伦理| 日韩欧美在线视频| 亚洲在线视频福利| 韩国美女主播一区| 亚洲国产成人91精品| 国产成人精品视频| 久久久91精品国产一区不卡| 欧美大片va欧美在线播放| 亚洲人成电影在线观看天堂色| 亚洲精品456在线播放狼人| 午夜免费在线观看精品视频| 国产精品久久久久久久7电影| 国产精品扒开腿做爽爽爽视频| 国产有码在线一区二区视频| 日韩精品一区二区三区第95| 国产成人精品电影| 国产精品视频一区二区三区四| 久久精品91久久香蕉加勒比| 日韩欧美国产一区二区| 欧美日韩福利在线观看| 久久久亚洲影院你懂的| 欧美性感美女h网站在线观看免费| 欧美国产高跟鞋裸体秀xxxhd| 亚洲精品成人av| 欧美激情一区二区三区在线视频观看| 亚洲高清色综合| 91视频免费在线| 久久综合久久美利坚合众国| 日韩在线国产精品| 欧美精品一二区| 亚洲精品小视频| 亚洲性视频网址| 国产精品美女久久久久av超清| 97超级碰碰人国产在线观看| 国产精品久久久久久久久男| 欧美视频一区二区三区…| 精品国产老师黑色丝袜高跟鞋| 最近2019中文免费高清视频观看www99| 97国产精品视频人人做人人爱| 精品久久久久久亚洲精品| 亚洲欧美日韩中文在线| 美女精品视频一区| 97色在线观看免费视频| 亚洲人成电影在线播放| 精品五月天久久| 亚洲欧美综合另类中字| 国产suv精品一区二区三区88区| 成人免费视频在线观看超级碰| 欧美性猛交xxxx乱大交蜜桃| 欧美电影《睫毛膏》| 日韩av网址在线| 精品偷拍各种wc美女嘘嘘| 日韩一区二区精品视频| 国产精品无码专区在线观看| 亚洲第一精品电影| 中文字幕欧美日韩在线| 精品一区二区亚洲| 亚洲人成电影在线播放| 欧美精品久久久久久久久| 亚洲国产婷婷香蕉久久久久久| 国产精品91免费在线| 久久97久久97精品免视看| 色妞一区二区三区| 国产精品视频久久久久| 国产精品专区一| 7777精品视频| 日韩在线视频导航| 69国产精品成人在线播放| 国产精品色婷婷视频| 久久中文字幕在线| 亚洲欧美在线看| 欧美一区二区三区免费观看| 国产精品极品美女粉嫩高清在线| 欧美午夜www高清视频| 国产精品网红福利| 欧美一级大片视频| 精品成人国产在线观看男人呻吟| 成人欧美在线视频| 欧美激情精品久久久久久黑人| 欧美插天视频在线播放| 欧美在线亚洲一区| 日韩中文字幕在线视频| 日本中文字幕不卡免费| 亚洲精品网址在线观看| 欧美精品福利视频| 国产精品福利无圣光在线一区| 精品国产视频在线| 亚洲japanese制服美女| 久久精品91久久久久久再现|