<div class="box"> <canvas id="canvas"></canvas> <fieldset> <legend>排列方向 </legend> <input type="button" value='vertical' class="btn" key="dir"> <input type="button" value="binTree" class="btn" key="dir"> </fieldset> </div>
var canvas = document.querySelector('#canvas'); var ctx = canvas.getContext('2d'); canvas.width = 800; canvas.height = 800; var ImgArr = []; var result = ''; var x = 0, y = 0; canvas.addEventListener('dragover', function (e) { e.preventDefault(); }) canvas.addEventListener('drop', function (e) { e.preventDefault(); var files = e.dataTransfer.files; var len = files.length; var i = 0; (function () { var _me = arguments.callee; if (i < len) { // var ImgObj={ // w: // h: // name: // src: // } var ImgObj = new Object(); var file = files[i]; ImgObj.src = window.URL.createObjectURL(file); ImgObj.name = file.name.match(/^(.+)\.(?:png|jpe?g|svg)$/)[1]; ImgObj.img = new Image(); ImgObj.img.src = ImgObj.src; ImgObj.img.onload = function () { ImgObj.w = ImgObj.img.width; ImgObj.h = ImgObj.img.height; ImgArr.push(ImgObj) _me(); } i++; } else { main() }; }()) }) var config = { dir: "vertical" }; $('fieldset').on('click', '.btn', function () { var val = $(this).val(); var key = $(this).attr('key'); config[key] = val; }) function main() { arrayImage(); createCss(); } function arrayImage() { //图片排列函数 if (config.dir === 'vertical') { ImgArr.forEach(function (item, index) { var image = item.img; var width = image.width; var height = image.height; y += height; item.x = 0; item.y = y - height; ctx.drawImage(image, 0, item.y, width, height); console.log(image); }) } else if (config.dir === 'binTree') { ImgArr.forEach(function (item, index) { var image = item.img; var width = image.width; var height = image.height; y += width item.y = 0; item.x = y - width; ctx.drawImage(image, item.x, 0, width, height); console.log(image); }) } } //css生成 function createCss() { ImgArr.forEach(function (item, index) { var css = [ '.icon-' + item.name + '{\n', 'background-image:url(' + item.src + ');\n', 'background-size:' + item.w + 'px ' + item.h + 'px;\n', 'background-position:' + item.x + 'px -' + item.y + 'px;\n', '}\n' ].join(''); result += css; }) console.log(result); }