在前端開發中,上傳頭像是一個非常常見的功能需求。為了讓用戶能夠輕松地裁剪自己的頭像,我們可以使用 jQuery Jcrop 插件。
$(function(){ // 聲明一個變量用來存儲實例化后返回的對象 var jcrop_api; // 獲取預覽圖框的寬度和高度 var width = $('#preview').width(); var height = $('#preview').height(); // 初始化 Jcrop 插件 $('#avatar').Jcrop({ aspectRatio: 1, boxWidth: width, boxHeight: height, onChange: updatePreview, onSelect: updatePreview }, function(){ jcrop_api = this; }); // 更新預覽圖 function updatePreview(c){ $('#preview').css({ width: Math.round(c.w) + 'px', height: Math.round(c.h) + 'px', marginLeft: '-' + Math.round(c.x) + 'px', marginTop: '-' + Math.round(c.y) + 'px' }); }; });
上述代碼中,我們首先聲明了一個變量 jcrop_api,用來存儲實例化后返回的對象。然后,我們獲取預覽圖框的寬度和高度,并初始化 Jcrop 插件。
Jcrop 插件的 aspectRatio 參數設置了裁剪框的寬高比例為 1,boxWidth 和 boxHeight 參數設置了裁剪框的寬度和高度為預覽圖框的寬度和高度。
Jcrop 插件的 onChange 和 onSelect 事件都調用了 updatePreview 函數,用來更新預覽圖的樣式。最后,我們將實例化后返回的對象賦值給 jcrop_api 變量。
通過 jQuery Jcrop 插件,我們可以輕松實現頭像上傳和裁剪功能,讓用戶能夠自由地選擇和修改自己的頭像。