先罗列一下我遇到的问题:前端
问题有这么多,我来一个个说。jquery
问题1的解决方案是上传前预压缩,其实就是将原来的图片大小缩小到你能够接受的程度,再上传给服务器。使用的是canvas的接口和FileReader对象来进行操做,具体实现就不说了看这《使用HTML5的两个api,前端js完成图片压缩。》。其次是文件的异步上传,可使用FormData把要提交的内容整合就能够了,减小不少麻烦,代码以下:git
$(document.forms['ajax']).submit(function(e){ var formData = new FormData(this); $.ajax({ ... type: 'post', data: formData, /* * 因为jquery会默认处理提交数据,因此必须关闭。 * XMLHttpRequest会对 formdata 进行正确的处理 */ processData: false, //原理同上,XMLHttpRequest会自动加上正确的Content-Type contentType: false, ... }) });
最近有空把图片压缩的代码作成插件了。能够看这:web
问题2,这个写个动画库通用了就好XD,解决方法不少。bootstrap
问题3,块内滑动问题,因为我这个卡内滑动元素仍是一个fixed了的块,全部我参考了bootstrap的modal模块是如何处理的,至于百度出来的大多数并没什么卵用╮(╯_╰)╭。先上代码:canvas
/*可滚动的块:*/ overflow-x: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch; /*块内加上一个div:*/ -webkit-transform: translate(0, 0); width: auto;
到底什么机制致使能解决这个问题目前还没时间去深究,若是看文章的你知道请务必和我说说!segmentfault
问题4,该如何解决呢?这个其实得和设计师沟通互相理解,具体看会项目成本和耗时,不得就改设计吧!可是仍是会有必须那样设计的问题,全部这里建议使用sass来处理不一样手机尺寸的处理,能大大减小手写代码。上我先的一段处理(各位看官轻喷,我就看了一上午sass文档)。api
//各手机尺寸,和比例。比例这里因设计给的是ip6的,全部就拿它来作基准。 $iPhone5: 320px 523px 0.85; $iPhone6: 375px 622px 1; $iPhone6-P: 414px 691px 1.1; $screens: $iPhone5 $iPhone6 $iPhone6-P; //用于套屏幕处理的 @mixin max-screen($res){ @media only screen and ( min-width: $res ) { @content; } } $btnImgSize: 191px 89px, 228px 94.5px, 128px 48.5px, 170px 67.5px, 308px 48px, 308px 48px, 308px 48px, 121.5px 129.5px; @for $i from 1 through 8 { .ui-img#{$i} { background-image: url(images/btn-img#{$i}.png); } } //循环屏幕数组 @each $screen in $screens { //套用上面预设的屏幕代码 @include max-screen(nth($screen,1) - 1) { @for $i from 1 through 8 { .ui-img#{$i} { width: nth(nth($btnImgSize,$i),1) * nth($screen,3); height: nth(nth($btnImgSize,$i),2) * nth($screen,3); } } } }
问题5,这个尽可能和设计师谈妥,不行就得处理图片加载了,若是大图多并且都是用到img标签的得写个预加载功能,否则还要动画什么的首次加载基本看不出,由于图片都没加载完你动画能看的出来么╮(╯_╰)╭ ,这里就不说预加载了(看官请看这Javascript实现图片的预加载功能)。还有单页面使用到background里的尽可能弄成雪碧图,可是单元面里分红多页显示的,有前后次序的,仍是每页的图片分开打包吧,浏览器会异步加载的了。数组
下周压力略大要弄个打地鼠游戏,虽然以前用egret写过游戏,可是对于egret新知识不了解,想提升工做效率还得去学,祝我顺利吧。