Commit 1510ec841513f7ab38fab335202a995cd827a4db

Authored by zouyang0921
1 parent 349e6114

[年会抽奖]修复上传头像变形

Showing 1 changed file with 51 additions and 28 deletions
mobile.js
@@ -145,7 +145,7 @@ var action = { @@ -145,7 +145,7 @@ var action = {
145 isShowProgressTips: 1, // 进度提示 145 isShowProgressTips: 1, // 进度提示
146 success: function (res) { 146 success: function (res) {
147 $('.pic-avatar').attr('src', localIds); 147 $('.pic-avatar').attr('src', localIds);
148 - action.loadImage('.pic-avatar'); 148 + action.loadImage('.pic-avatar', localIds);
149 action.mediaId = res.serverId; // 返回图片的服务器端ID,即 mediaId 149 action.mediaId = res.serverId; // 返回图片的服务器端ID,即 mediaId
150 console.log('action.mediaId: ', action.mediaId); 150 console.log('action.mediaId: ', action.mediaId);
151 $('#upload_unavailable').hide(); 151 $('#upload_unavailable').hide();
@@ -165,35 +165,58 @@ var action = { @@ -165,35 +165,58 @@ var action = {
165 } 165 }
166 }); 166 });
167 }, 167 },
168 - loadImage: function(dom) { 168 + loadImage: function(dom, src) {
169 var width = $(dom).width(); 169 var width = $(dom).width();
170 - var height = $(dom).height();  
171 - var imgWidth = '', imgHeight = '';  
172 - console.log('width: ' + width, 'height: ' + height);  
173 - var ratio = width / height;  
174 - if (ratio > 1) {  
175 - imgHeight = width;  
176 - imgWidth = width * ratio;  
177 - var margin = (imgWidth - width) / 2;  
178 - $(dom).css({  
179 - width: imgWidth + 'px',  
180 - height: imgHeight + 'px',  
181 - 'margin-left': -margin + 'px'  
182 - });  
183 - } else if (ratio < 1) {  
184 - imgWidth = width;  
185 - imgHeight = width / ratio;  
186 - var margin = (imgHeight - width) / 2;  
187 - $(dom).css({  
188 - width: imgWidth + 'px',  
189 - height: imgHeight + 'px',  
190 - 'margin-top': -margin + 'px'  
191 - }); 170 + var img = new Image();
  171 + img.src = src; // 改变图片的src
  172 + if (img.complete) { // 判断是否有缓存
  173 + console.log('img complete');
  174 + console.log('width: ', width);
  175 + console.log('img-width: ' + img.width, 'img-height: ' + img.height);
  176 + var ratio = img.width / img.height;
  177 + if (ratio > 1) {
  178 + img.height = width;
  179 + img.width = width * ratio;
  180 + var margin = (img.width - width) / 2;
  181 + $(dom).css({
  182 + 'margin-left': -margin + 'px'
  183 + });
  184 + } else if (ratio < 1) {
  185 + img.width = width;
  186 + img.height = width / ratio;
  187 + var margin = (img.height - width) / 2;
  188 + $(dom).css({
  189 + 'margin-top': -margin + 'px'
  190 + });
  191 + } else {
  192 + img.width = width;
  193 + img.height = width;
  194 + }
192 } else { 195 } else {
193 - $(dom).css({  
194 - width: width + 'px',  
195 - height: width + 'px'  
196 - }); 196 + img.onload = function() {
  197 + console.log('img onload');
  198 + console.log('width: ', width);
  199 + console.log('img-width: ' + img.width, 'img-height: ' + img.height);
  200 + var ratio = img.width / img.height;
  201 + if (ratio > 1) {
  202 + img.height = width;
  203 + img.width = width * ratio;
  204 + var margin = (img.width - width) / 2;
  205 + $(dom).css({
  206 + 'margin-left': -margin + 'px'
  207 + });
  208 + } else if (ratio < 1) {
  209 + img.width = width;
  210 + img.height = width / ratio;
  211 + var margin = (img.height - width) / 2;
  212 + $(dom).css({
  213 + 'margin-top': -margin + 'px'
  214 + });
  215 + } else {
  216 + img.width = width;
  217 + img.height = width;
  218 + }
  219 + }
197 } 220 }
198 }, 221 },
199 // 上传头像 222 // 上传头像