20天的工作总结
最近做了一个项目。没有给具体完成时间,结果我就做了20多天,其实大部分是每天三四个小时。
里面的知识点还需要总结一下:
1. CORS(Cross-Origin Resource Sharing,跨域资源共享)
2. Json的parse 和 stringfy
3. 数组的去重复
var hash = {},newArr = []; if(!hash[str]){ newArr.push(str); hash[str] = true; }
4. 数组去重后其他合并成子项obj。没有想到最优的办法,获取i然后重新循环,arr.slice(i,i+1) 选取其中一些部分
5. 每5个数组合并成一个字符串,用了do…while ,arr.splice(0,5).join(“”)
用do...while 操作里面的数组,数组会发生变化(如果注释不去掉的话,splice两下,数组会发生变化)
do{ //arr2.push(Math.max.apply(null,arr.splice(0,5))) totalHeight += Math.max.apply(null,arr.splice(0,5)) + 5; } while(arr.length>0)
6. 页面滚动到最下的计算
7. 在srcoll 和 resize的时候用到的 throttle (debounce 与其相关)
8. 判断图片是否加载完成 ie: onreadState ; other: onload。并且图片加载完毕也是在for循环 ++到最后一条后,再执行其他function的
20131113
9.又改成了瀑布流,位置的计算(主要是第二个for循环的写法)
function sort(arr){ var top, column , gap = 20 , num = 4; for(var i = 0 ; i < arr.length ; i++){ column = i%num; var left = column*(arr[i].offsetWidth+gap); //假如宽度不统一 也不能这样做 arr[i].style.left = left+"px"; top = 0; //原来就是因为这个没有循环的时候变成0 if(i < num){ arr[i].style.top = "0px"; }else{ for(var j = column ; j < i ; j = j + num){ top = top + arr[j].offsetHeight; } arr[i].style.top = top+"px"; } } }