今天仿微信聊天时候的图片大小 , 描了十几个点 , 用了半个早上的苦力时间 , 把结果分享一下下~
描点过程: 笨方法~
描点数据:
注: 40 表示的是宽高比为 40% 也就是 0.4
40 -> 203 509
41 -> 203 498
42 -> 203 481
43 -> 203 476
44 -> 203 460
45 -> 203 452
46 -> 203 438
47 -> 203 435
48 -> 203 419
49 -> 203 416
50 -> 203 407
51 -> 203 407
52 -> 209 405
55 -> 219 405
60 -> 243 405
70 -> 283 405
80 -> 324 405
90 -> 364 405
100-> 405 405
110-> 405 364
120-> 405 337
那么很显然了规律
还有使用测试图片得到的数据
那么算法就很容易看出来了 , 代码如下
//根据宽高比来设置外框的 size
if (ratio < 0.4 ){
width = 204; //这是从微信截图的长度最后需要同一除以 3
height = 510;
$img.parentElement.classList.add('overflowHeight'); //设置高度溢出部分隐藏
}else if(ratio >= 0.4 && ratio <= 0.5){
width = 204;
height = 204/ratio;
} else if(ratio > 0.5 && ratio < 1) {
width = 405 * ratio;
height = 405;
} else if(ratio >= 1 && ratio < 1/0.5) { //和前面的宽高转置
height = 405 * (1/ratio);
width = 405;
} else if (ratio >= 1/0.5 && ratio < 1/0.4) {
height = 204;
width = 204 / (1/ratio);
} else if (ratio >= 1/0.4) {
height = 204; //这是从微信截图的长度最后需要同一除以 3
width = 510;
$img.parentElement.classList.add('overflowWidth');
}
height /= 3;
width /= 3;
那么最终效果如下~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.