项目总结壹(皮肤管家)

上周完成了公司猫迹商城的新需求—“皮肤管家”,中间遇到了几个坑;

1、rem误差问题

2、苹果手机拍照上传图片翻转问题

3、swiper加载报undefined问题

4、@keyframes保留动画最后一帧的问题

5、<input type="file">安卓机上传不了图片

==>    rem问题:

rem单位转换成px单位时,在不同的手机设备上存在差异,在苹果手机上,能正常显示宽高大小,但是在安卓机上(测了小米、oppo和华为)都存在变形。特别是当设置的宽高小于1rem时,这种误差对视觉还原的影响就很明显了。最后的解决方法,是对这些对微差要求敏感的标签单独处理,直接用px单位給值。

==>  苹果手机拍照上传图片翻转问题

项目中,需要通过input的file属性标签调用change事件上传图片,并将选中的图片转换为base64格式,通过ajax请求发送給后台;图片的上传方式分为两种,一种是直接在相册里面选,第二种是调用手机相机拍照之后上传;最后在测试时,发现苹果手机直接拍照上传,发现上传给后台的图片却是翻转的,在安卓机上和从相册上直接选择图片上传却都是正常的,最后的解决方法是在npm库下载exif.js插件解决苹果手机拍照上传翻转问题。其插件解决的思路是:因为每张图片包含很多图片信息,其中就包括图片的方向,而exif.js插件封装了判断图片方向的方法,因此我们可以很方便的知道了图片被翻转的角度,最后再通过画布canvas的方法对图片进行还原。

==>  swiper加载报undefined问题

在项目中,有一个功能需要用到swiper插件,即当我点击当前图片时,会弹出轮播窗口,并定位到当前图片位置。然而当我按照官方文档介绍进行引用时,却发现点击弹出窗口,轮播窗口能正常显示,然而却不能定位到指定位置的图片(这里使用了swiper插件的方法:swiper.slideTo(picID,2000,false)),调用后台调试工具console,发现报swiper为undefined错误。最后排查了一个早上的坑,才发现是Vue的DOM加载问题:因为我在项目中弹窗的控制是通过v-if语句控制,然而开始v-if为false,此时弹窗并未编译渲染到当前页面结构,因此computed执行时,并未找到swiper内容,所以执行方法this.swiper.slideTo()报错,最后解决的方法是把v-if改为v-show解决

==>   @keyframes保留动画最后一帧的问题

在定义animation动画时,keyframes定义的动画在没有设置循环效果时,其一般执行一次就会停止,并回到dom默认设置的样式,因此如果需要保留动画最后一帧的效果,需要添加animation-fill-mode:forwards

==>  <input type="file"> 安卓机上传不了图片

最开始,我的input写法是:<input @change="upPics"  type="file" accept="image/png,image/gif,image/jpeg,image/bmp"mutiple="mutiple" > ,然而测试的时候,却发现苹果手机能正常上传图片和调用拍照功能,而安卓手机却不行,后面百度知乎,将其改为<input type="file" @change="upPics" accept="image/*"  mutiple="mutiple">却发现神奇的可以了....

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,776评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,240评论 4 61
  • 内容抽屉菜单ListViewWebViewSwitchButton按钮点赞按钮进度条TabLayout图标下拉刷新...
    皇小弟阅读 47,028评论 22 665
  • 9.6 欢迎你......请握住我的手,随我同行,与我作伴,一起走进我的世界,这是一个全新的开始,或许你也可能遇见...
    A小帅阅读 2,649评论 0 0
  • 黄昏的操场,黑云压城。暴风雨要来的前奏,一片忙碌。身后的展旗摇摇晃晃,时刻有被砸中的危险,就这样坐在观众席的最...
    L付先森阅读 1,111评论 0 0