插件描述:該插件可以支持手機端PC端圖片的旋轉,縮放,移動等操作
一款支持手勢的裁圖插件插件
由于目前網上很難找到一款支持手勢的裁圖插件,因此自己動手寫了一個。為了快速開發,依賴了很多其他的開源插件。不過目前僅解決需求即可。
[jquery.transit.js] 插件 (v1.4 中已經移除了對該插件的依賴)
[iscroll-zoom.js] 插件(由于原插件的zoom擴展存在幾個bug,所以建議使用demo中提供的iscroll-zoom.js文件,本人已經將這些bug修復)
[hammer.js] 插件
[lrz.all.bundle.js] 插件
在移動設備上雙指捏合為縮放,雙指旋轉可根據旋轉方向每次旋轉90度
在PC設備上鼠標滾輪為縮放,每次雙擊則順時針旋轉90度
<div id="clipArea"></div> <input type="file" id="file"> <button id="clipBtn">截取</button> <div id="view"></div> <script src="js/jquery-2.1.3.min.js"></script> <script src="js/hammer.min.js"></script> <script src="js/iscroll-zoom.min.js"></script> <script src="js/lrz.all.bundle.js"></script> <script src="js/jquery.photoClip.min.js"></script> <script> var clipArea = new bjj.PhotoClip("#clipArea", { size: [260, 260], // 截取框的寬和高組成的數組。默認值為[260,260] outputSize: [640, 640], // 輸出圖像的寬和高組成的數組。默認值為[0,0],表示輸出圖像原始大小 //outputType: "jpg", // 指定輸出圖片的類型,可選 "jpg" 和 "png" 兩種種類型,默認為 "jpg" file: "#file", // 上傳圖片的<input type="file">控件的選擇器或者DOM對象 view: "#view", // 顯示截取后圖像的容器的選擇器或者DOM對象 ok: "#clipBtn", // 確認截圖按鈕的選擇器或者DOM對象 loadStart: function(file) {}, // 開始加載的回調函數。this指向 fileReader 對象,并將正在加載的 file 對象作為參數傳入 loadComplete: function(src) {}, // 加載完成的回調函數。this指向圖片對象,并將圖片地址作為參數傳入 loadError: function(event) {}, // 加載失敗的回調函數。this指向 fileReader 對象,并將錯誤事件的 event 對象作為參數傳入 clipFinish: function(dataURL) {}, // 裁剪完成的回調函數。this指向圖片對象,會將裁剪出的圖像數據DataURL作為參數傳入 }); </script>
Destroy
clipArea.destroy();