layui.define(['layer', 'carousel'], function (exports) { var $ = layui.jquery; var layer = layui.layer; var carousel = layui.carousel; // 添加步骤条dom节点 var renderDom = function (elem, stepItems, postion) { var stepDiv = '
'; for (var i = 0; i < stepItems.length; i++) { stepDiv += '
'; // 线 if (i < (stepItems.length - 1)) { if (i < postion) { stepDiv += '
'; } else { stepDiv += '
'; } } // 数字 var number = stepItems[i].number; if (!number) { number = i + 1; } if (i == postion) { stepDiv += '
' + number + '
'; } else if (i < postion) { stepDiv += '
'; } else { stepDiv += '
' + number + '
'; } // 标题和描述 var title = stepItems[i].title; var desc = stepItems[i].desc; if (title || desc) { stepDiv += '
'; if (title) { stepDiv += '
' + title + '
'; } if (desc) { stepDiv += '
' + desc + '
'; } stepDiv += '
'; } stepDiv += '
'; } stepDiv += '
'; $(elem).prepend(stepDiv); // 计算每一个条目的宽度 var bfb = 100 / stepItems.length; $('.step-item').css('width', bfb + '%'); }; var step = { // 渲染步骤条 render: function (param) { param.indicator = 'none'; // 不显示指示器 param.arrow = 'always'; // 始终显示箭头 param.autoplay = false; // 关闭自动播放 if (!param.stepWidth) { param.stepWidth = '400px'; } // 渲染轮播图 carousel.render(param); // 渲染步骤条 var stepItems = param.stepItems; renderDom(param.elem, stepItems, 0); $('.lay-step').css('width', param.stepWidth); //监听轮播切换事件 carousel.on('change(' + param.filter + ')', function (obj) { $(param.elem).find('.lay-step').remove(); renderDom(param.elem, stepItems, obj.index); $('.lay-step').css('width', param.stepWidth); }); // 隐藏左右箭头按钮 $(param.elem).find('.layui-carousel-arrow').css('display', 'none'); // 去掉轮播图的背景颜色 $(param.elem).css('background-color', 'transparent'); }, // 下一步 next: function (elem) { $(elem).find('.layui-carousel-arrow[lay-type=add]').trigger('click'); }, // 上一步 pre: function (elem) { $(elem).find('.layui-carousel-arrow[lay-type=sub]').trigger('click'); } }; layui.link(layui.cache.base + 'step-lay/step.css'); exports('step', step); });