标签:select code content http bst tps line lin 创建
https://github.com/sandraryan/practise/tree/master/js/demo
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> ul, li { list-style: none; box-sizing: border-box; } ul { /* width: 600px; */ border: 5px solid silver; border-radius: 8px; margin: 0 auto; padding: 15px; display: flex; } li { width: 200px;height: 300px; background-color: rgb(0, 162, 255); padding: 10px; } li>div { text-align: center; font-size: 50px; color: white; } </style> </head> <body> <ul class="list"></ul> <script> var list = document.querySelector(".list"); // 列的数组,列创建完后才赋值 var liArr; var ha = []; // 根据当前可视窗口宽度计算列的数量 // 减去margin padding,是li的可用宽度 var bw = document.body.clientWidth - 30 - 20; // 下舍入,因为能放3.9个实际上会只能放下3个 // 总宽度除当前宽度 var n = Math.floor(bw/200); // 创建对应个数的列,创建对应的高度数组 for(var i = 0; i < n ; i++){ var newLi = document.createElement("li"); console.log(list); console.log(newLi); list.appendChild(newLi); // ha承接所有列的高度,刚创建时初始高度为0 // 创建几列,push几次 ha.push(0); } liArr = document.querySelectorAll("ul li"); // 找到ha数组中最小的元素,确定下标 // function getMinIndex(){ // // 假设ha第一个元素是最小值,把他和其他元素分别比较,如果小于其他值,覆盖 // var min = ha[0]; // for(var j = 0 ; j < ha.length; j++){ // min = min < ha[j] ? min : ha[j]; // } // // 返回最小值的下标 // return ha.indexOf(min); // } // 以上代码比较值,可优化为直接比较索引的值 function getMinIndex(){ var mi = 0; for(var j =1; j <ha.length;j++){ mi = ha[mi] < ha[j] ? mi : j; } return mi; } // 封装随机数函数 function rn(a,b){ return Math.round(Math.random()*(b-a)+a); } // 创建元素 每个元素添加到当前最短的一列中 for(var x = 0; x < 50; x++){ // 创建元素 var el = document.createElement("div"); // 随机高度,颜色,设置内容 var h = rn(100,200); var bg = "#" + (Math.random()+ "").substr(2,6); el.style.height = h + "px"; el.style.background = bg; el.innerHTML = x; el.style.lineHeight = h + "px"; // 找到最矮一列下标,添加到对应列 var _mi = getMinIndex(); // 更新ha数组 liArr[_mi].appendChild(el); // 添加刚加进去的元素的高度 ha[_mi] += h; } </script> </body> </html>
标签:select code content http bst tps line lin 创建
原文地址:https://www.cnblogs.com/sandraryan/p/11388826.html