12345678910111213141516171819202122232425262728293031323334353637383940414243// 修改 row 即可改变模块数量,其他代码不需修改,仍可运行;var width = 50; //单元模块宽var row = 9; //行数var border = 0; //单元模块边宽和var totalWidth = (width + border) * row;var div = '';for (var i = 0; i < row * row; i++) {div += `<div class="item" style="background-color: ${color()}">${i + 1}</div>`;}$('#board').css({'width': totalWidth + 'px','height': totalWidth + 'px',})$('#board').append(div);$('.item').css({'width': width + 'px','height': width + 'px','line-height': width + 'px',})var initLocation = setXY(width, row, border);var initLocation2 = setXY(width, row, border);document.getElementById('btn').onclick = function() {// console.time();var arr = initLocation2.sort(() => (0.5 - Math.random())); // 生成随机数组changeLocation(arr);// console.timeEnd();}document.getElementById('btn2').onclick = function() {resetLocation(initLocation);}// 获取设置单元的初始位置,左上方点的位置function setXY(width, row, border) {var width = width; //单元模块宽var row = row; //行数var border = border; //单元模块边宽和var width_border = width + border;var x = [];var y = [];var xy = [];for (var i = 0; i < row; i++) {x[i] = width_border * i;for (var j = 0; j < row; j++) {y[j] = width_border * j;
1.没做兼容
2.如何实现每个方块旋转的同时变化位置?
3.如果行数大于20,就会有肉眼可见的演示,性能如何优化?