¶Ô±ÈÐÂÎļþ |
| | |
| | | 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 = '<div class="lay-step">'; |
| | | for (var i = 0; i < stepItems.length; i++) { |
| | | stepDiv += '<div class="step-item">'; |
| | | // 线 |
| | | if (i < (stepItems.length - 1)) { |
| | | if (i < postion) { |
| | | stepDiv += '<div class="step-item-tail"><i class="step-item-tail-done"></i></div>'; |
| | | } else { |
| | | stepDiv += '<div class="step-item-tail"><i class=""></i></div>'; |
| | | } |
| | | } |
| | | |
| | | // æ°å |
| | | var number = stepItems[i].number; |
| | | if (!number) { |
| | | number = i + 1; |
| | | } |
| | | if (i == postion) { |
| | | stepDiv += '<div class="step-item-head step-item-head-active"><i class="layui-icon">' + number + '</i></div>'; |
| | | } else if (i < postion) { |
| | | stepDiv += '<div class="step-item-head"><i class="layui-icon layui-icon-ok"></i></div>'; |
| | | } else { |
| | | stepDiv += '<div class="step-item-head "><i class="layui-icon">' + number + '</i></div>'; |
| | | } |
| | | |
| | | // æ é¢åæè¿° |
| | | var title = stepItems[i].title; |
| | | var desc = stepItems[i].desc; |
| | | if (title || desc) { |
| | | stepDiv += '<div class="step-item-main">'; |
| | | if (title) { |
| | | stepDiv += '<div class="step-item-main-title">' + title + '</div>'; |
| | | } |
| | | if (desc) { |
| | | stepDiv += '<div class="step-item-main-desc">' + desc + '</div>'; |
| | | } |
| | | stepDiv += '</div>'; |
| | | } |
| | | stepDiv += '</div>'; |
| | | } |
| | | stepDiv += '</div>'; |
| | | |
| | | $(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); |
| | | }); |