【ife】任务四十五:多功能相册之木桶布局
2017-01-14 18:52
239 查看
var imgs = [ {"src": "images/task45_1.jpg", flag: 0}, {"src": "images/task45_2.jpg", flag: 0}, {"src": "images/task45_3.jpg", flag: 0}, {"src": "images/task45_4.jpg", flag: 0}, {"src": "images/task45_5.jpg", flag: 0}, {"src": "images/task45_6.jpg", flag: 0}, {"src": "images/task45_7.jpg", flag: 0}, {"src": "images/task45_8.jpg", flag: 0}, {"src": "images/task45_9.jpg", flag: 0}, {"src": "images/task45_10.jpg", flag: 0}, {"src": "images/task45_11.jpg", flag: 0}, {"src": "images/task45_12.jpg", flag: 0} ]; window.onload = function() { var container = document.getElementById("container"); var width = container.offsetWidth; for (var i = 0; i < imgs.length; i++) { var img = new Image(); img.src = imgs[i].src; imgs[i].ratio = parseFloat(img.width) / parseFloat(img.height); } var begin = 0; var totalHeight = 0; var rows = 0; var flag = true; while(flag) { var count = 0; var number = 0; for (var j = 0; j < imgs.length; j++) { if (imgs[j].flag == 0 && count + imgs[j].ratio < 6) { number++; var image = document.createElement("img"); image.setAttribute("src", imgs[j].src); container.appendChild(image); count += imgs[j].ratio; imgs[j].flag = 1; } } rows++; if (begin + number != imgs.length) { height = parseFloat(width) / count; totalHeight += height; var images = document.getElementsByTagName("img"); var totalWidth = 0; for (var j = begin; j < begin + number - 1; j++) { images[j].style.height = height + 'px'; images[j].style.width = height * imgs[images[j].getAttribute("src").slice(14, -4) - '0' - 1].ratio + "px"; totalWidth += parseFloat(images[j].style.width); } images[begin + number - 1].style.height = height + 'px'; images[begin + number - 1].style.width = parseFloat(width) - totalWidth + "px"; } else { height = totalHeight / (rows - 1); for (var j = begin; j < begin + number; j++) { images[j].style.height = height + 'px'; images[j].style.width = height * imgs[images[j].getAttribute("src").slice(14, -4) - '0' - 1].ratio + "px"; } flag = false; } begin = begin + number; } };
相关文章推荐
- 前端跨域问题
- JQuery DataTable 详解
- jQuery ajax - load() 方法 回调函数以及如何得到回调结果中需要的数据值
- javascript数组常用操作
- JavaScript之下雨效果制作--自己封装实例化对象结合canvas
- Kattis - Fenwick Tree(树状数组区间更新单点求值)
- 使用JSTL标签库
- hammer.js
- 第九章 CSS的继承、层叠、特殊性、重要性
- JQuery基础知识(1)
- Netty高性能之Reactor线程模型
- jsp Ajax请求(返回json数据类型)
- 失去焦点与点击事件冲突
- 正则表达式之邮箱验证javascript代码
- 前序1 前端ps基础
- ul实现横向排列不换行的两种解决方案
- 征服JavaScript面试系列:类继承和原型继承的区别
- JQuery使用插件实现轮播
- JSP详细篇——EL表达式
- 浅谈技术债