tuh,今天跟大伙唠唠“无可非难”这词儿。说白了,就是没毛病。啥事儿都没啥可挑剔的,做的贼没啥可让你挑刺儿的地方。
我最近就遇到这么个事儿。我有个朋友,做小程序的,他之前弄了个活动页面,挺急的,我就上手帮他弄了弄。本来想赶紧弄完就完事,结果他那个需求,还挺细致。我一点点地敲着代码,调着样式,一点点地把它做出来。
最开始是画布的尺寸,得根据不同的手机屏幕适配,不能放大模糊,也不能小了显得太空。我就把那个canvas的尺寸用js算出来,再设置上去。然后是图片上传,要支持预览,还得能压缩,不能一张大图就把客户网速给卡住。我搞了半天,把图片压缩的逻辑写好了,上传前再来个预览,客户能看一眼,心里也有数。
接着是文字的编辑,得能改字体,改颜色,还得有行高、字间距这些。我把一个textarea套了个div,实现了所见即所得的效果。改完之后,还能让文字在画布上自由拖拽、缩放。这个玩意儿就比较绕了,得算坐标,得做边界限制,不然文字就跑到外面去了。

最头疼的是那个背景音乐。客户要求音乐得自动播放,还得能控制播放、暂停。这个自动播放现在浏览器管得严,得用一些小技巧。我试了好几种方法,用了一个延时播放的方案,绕过了浏览器的一些限制。播放暂停按钮也得跟着音乐的状态变,还得有进度条显示。这个我从网上找了个现成的组件,稍微改了改,就弄上去了。
中间也遇到不少小问题,比如有的手机上传图片上传一半就断了,有的浏览器不支持某个CSS属性。我一个一个地去查资料,去调试,一点点地把bug给干掉。客户在那边催得紧,说要明天就上线。我就拼了命地赶,头发都快愁白了。
看着那个小程序页面在我的手机上,在客户手机上,在各种模拟器上都跑得顺顺溜溜的,上传下载不卡,文字能改,音乐能播,界面也挺好看的。客户那边的人看了,直接就说:“没毛病,挺好的!” 这时候心里那个美滋滋,感觉所有的辛苦都值了。
说到底,“无可非难”就是这么个感觉。你做得东西,从头到尾,从里到外,都合情合理,都合乎规矩,没有让你觉得不舒服的地方,让你挑不出毛病来。就像我弄的这个小程序页面,客户要啥我给而且给得还挺他还能说只能夸一句:牛!
