/*! * layui 官网 */ layui.define(['code', 'element', 'table', 'util', 'carousel', 'laytpl'], function(exports){ var $ = layui.jquery ,element = layui.element ,layer = layui.layer ,form = layui.form ,util = layui.util ,carousel = layui.carousel ,laytpl = layui.laytpl ,device = layui.device() ,$win = $(window), $body = $('body'); //ban iframe ;!function(){self!==parent&&(location.href="//www.baidu.com/")}(); //阻止 IE7 以下访问 if(device.ie && device.ie < 8){ layer.alert('Layui 最低支持 IE8,而您当前使用的是古老的 IE'+ device.ie + ',体验将会不佳!'); } var home = { //获取高级浏览器 getBrowser: function(){ var ua = navigator.userAgent.toLocaleLowerCase() ,mimeType = function(option, value) { var mimeTypes = navigator.mimeTypes; for (var key in mimeTypes) { if (mimeTypes[key][option] && mimeTypes[key][option].indexOf(value) !== -1) { return true; } } return; }; if(ua.match(/chrome/)){ if(mimeType('type', '360') || mimeType('type', 'sogou')) return; if(ua.match(/edg\//)) return 'edge'; return 'chrome' } else if(ua.match(/firefox/)){ return 'firefox'; } return; } }; var elemHome = $('#LAY_home'); var local = layui.data('layui'); //初始弹窗 layer.ready(function(){ //升级提示 if(local.version && local.version !== layui.v){ layer.open({ type: 1 ,title: '更新提示' //不显示标题栏 ,closeBtn: false ,area: '300px;' ,shade: false ,offset: 'b' ,id: 'LAY_updateNotice' //设定一个id,防止重复弹出 ,btn: ['更新日志', '我知道了'] ,btnAlign: 'c' ,moveType: 1 //拖拽模式,0或者1 ,content: ['
' ,'layui 已发布新版本::v'+ layui.v + '' ,'
'].join('') ,skin: 'layui-layer-notice' ,yes: function(index){ layer.close(index); setTimeout(function(){ location.href = '/doc/base/changelog.html'; }, 500); } ,end: function(){ layui.data('layui', { key: 'version' ,value: layui.v }); } }); } layui.data('layui', { key: 'version' ,value: layui.v }); }); //头部搜索 ;!function(){ var elemComponentSelect = $(['' ,''].join('')); $('.component').append(elemComponentSelect); form.render('select', 'LAY-site-header-component'); //搜索组件 form.on('select(component)', function(data){ var value = data.value; location.href = /^\//.test(value) ? value : ('/doc/'+ value); }); }(); //顶部轮播 TIPS var notice = function(options, elemParter){ var local = layui.data('layui'); options = options || {}; if(device.mobile) return; //是否不显示 tips var keyName = 'notice_topnav_'+ options.key ,notParter = local[keyName] && new Date().getTime() - local[keyName] < (options.tipsInterval || 1000*60*30); //默认 30 分钟出现一次 if(!options.tips) layer.close(layer.tipsIndex); if(!notParter && options.tips){ var tipsIndex = layer.tipsIndex = layer.tips( ['' //阿里云经典:background-image: linear-gradient(to right,#8510FF,#D025C2,#FF8B2D,#FF0036); //阿里云活动:background-image: linear-gradient(to right,#8510FF,#D025C2,#F64E2C,#FF0036); //腾讯经典:background-image: linear-gradient(to right,#1242A4,#1746A1,#CFAE71,#1746A1); ,options.desc || '' ,''].join('') ,elemParter ,{ tips: (options.tipsStyle ? new Function('return '+ options.tipsStyle)() : [3, '#9F17E9']) //阿里云经典:[3, '#9F17E9'] //腾讯云经典:[3, '#1443A3'] //[3, '#803ED9'] ,skin: 'layui-hide-xs' ,maxWidth: 320 ,time: 0 ,anim: 5 ,tipeMore: true ,success: function(layero, index){ layero.find('.layui-layer-content').css({ 'padding': 0 }); layero.find('a').on('click', function(){ elemParter.trigger('click'); }); //隐藏小箭头 var tipsG = layero.find('.layui-layer-TipsG'); if(tipsG.css('left') !== '5px'){ tipsG.hide(); } //移动端样式 if(elemParter.parent().css('display') === 'none'){ layero.css({ left: '50%' ,top: '80px' ,'margin-left': -(layero.width()/2) }); tipsG.hide(); } } } ) //点击链接 elemParter.on('click', function(){ layui.data('layui', { key: keyName ,value: new Date().getTime() }); layer.close(tipsIndex); }); } }; //头部轮播 ;!function(){ var noticeElem = $('.site-notice'); if(device.mobile || !noticeElem[0]) return; (function(data){ data = data || []; data = layui.sort(data, 'sort', true); //优先级排序 var tpl = ['{{# if(d.length > 0){ }}' ,'' ,'{{# } }}'].join(''); laytpl(tpl).render(data, function(html){ var elem = '.site-notice .layui-carousel'; noticeElem.html(html); //轮播实例 carousel.render({ elem: elem ,width: '100%' //设置容器宽度 ,height: '100%' ,arrow: 'none' //始终显示箭头 ,indicator: 'none' //指示器位置 ,anim: 'fade' //切换动画方式 ,interval: 5000 //自动切换的时间间隔 }); notice(data[0], $(elem).children('div').children('div').eq(0).find('a')); carousel.on('change(site-top-carousel)', function(obj){ notice(data[obj.index], obj.item.find('a')); }); }); })([{"classname":"toptg","key":"toptg-notice","title":"layui 官网下线公告","url":layui.cache.dir + "../../../www.layui.com/about/notice.html","CONFIG_TIME":"9/26/2021, 6:25:48 PM","tips":"","tipsCss":"background-image: linear-gradient(to right,#359FD4,#36B5C8,#25D8AB","hot":"1"}]); }(); //头部动态导航 ;!function(){ var elemNavTop = $('#LAY_NAV_TOP') ,browser = home.getBrowser(); if(!(browser === 'edge' || browser === 'chrome' || browser === 'firefox')) return; if(!elemNavTop[0]) return; (function(data){ data = data || []; data = data[0] || {}; var content = data.content; if(!content) return; elemNavTop.append(content); elemNavTop.find('.layui-nav-bar').remove(); elemNavTop.find('.layui-nav-item').off('mouseenter').off('mouseleave') element.render('nav'); })([{"classname":"toptg","key":"toptg-notice","title":"layui 官网下线公告","url":layui.cache.dir + "../../../www.layui.com/about/notice.html","CONFIG_TIME":"9/26/2021, 6:25:48 PM","tips":"","tipsCss":"background-image: linear-gradient(to right,#359FD4,#36B5C8,#25D8AB","hot":"1"}]); }(); //弹出公告 ;!function(){ local.popup_notice = new Date('2021-10-13 00:00:00').getTime(); (function(data){ data = data || []; data = data[0] || {}; var content = data.content; if(!content) return; var hasClickNotice = local.popup_notice && new Date().getTime() - local.popup_notice < (data.tipsInterval || 1000*60*60*24*3); if(hasClickNotice) return; setTimeout(function(){ layer.open({ type: 1 ,title: data.title || '公告' ,area: device.mobile ? ['90%', '90%'] : ['800px', '520px'] ,shade: false //,offset: 'b' ,id: 'LAY_Notice' //设定一个id,防止重复弹出 ,skin: 'site-popup-notice' ,resize: false ,content: content ,success: function(layero, index){ layero.find('a').on('click', function(){ layer.close(index); }); } ,end: function(){ layui.data('layui', { key: 'popup_notice' ,value: new Date().getTime() }); } }); }, 500); })([{ "classname": "popup", "key": "popup-notice", "title": "layui 重要公告", "url": "", "CONFIG_TIME": "9/26/2021, 6:26:53 PM", "content": "\n\n
\n

\n 所有对 layui 为之热爱、鞭策、奉献,和支持过的开发者:\n
请接受我用意念和字节传达的深深歉意。这是一个无力、无奈,甚至无助的决定:\n

\n \n
\n layui 官网将于 2021年10月13日 进行下线。\n
\n \n

届时,包括新版下载、文档和示例在内的所有框架日常维护工作,将全部迁移到 Github 和 Gitee。\n
此后,layui 仍会在代码托管平台所活跃,且 2.7 正式版也将在其间首发。而 layui 官网将不复存在。
这不是终结,只是重归到开源的纯粹中来。\n

\n \n

再者,对于 layuiAdmin 和 layim 专区,将会迁移到新站进行保留,以便老用户还能下载使用,且此二者不再面向新用户。

\n \n

过去五年,layui 有幸被应用在不计其数的 Web 平台,在前端工程化迅速席来的浪潮中,我们仍然感受到一丝来自于 jQuery 的余晖,这是一种带有热量的冰冷(反之亦可)。使命已达,便纵有万般遗憾,更与何人说?!

\n \n

最后,请大家怀揣对 Web 前端技术的热忱,去拥抱 Vue.js、拥抱 Element UI、拥抱更好的新时代,\n
以及,所有那些值得去追求的美好事物。

\n \n

—— 贤心

\n\n
\n 我有话说 \n
\n
", "tipsCss": "background-image: linear-gradient(to right,#359FD4,#36B5C8,#25D8AB", "tipsInterval": local.popup_notice }]); }(); //点击事件 var events = { //联系方式 contactInfo: function(){ layer.alert('
如有合作意向,可联系:
邮箱:xianxin@layui-inc.com
', { title:'联系' ,btn: false ,shadeClose: true }); } //公众号 ,weixinmp: function(){ layer.photos({ photos: { data: [{ alt: 'layui 公众号' ,"src": "https://cdn.layui.com/upload/2017_8/168_1501890714998_68095.jpg" //原图地址 ,"thumb": "https://cdn.layui.com/upload/2017_8/168_1501890714998_68095.jpg" //缩略图地址 }] } }) } }; $body.on('click', '*[site-event]', function(){ var othis = $(this) ,attrEvent = othis.attr('site-event'); events[attrEvent] && events[attrEvent].call(this, othis); }); //切换版本 form.on('select(tabVersion)', function(data){ var value = data.value; location.href = value === 'new' ? '/' : ('/' + value + '/doc/'); }); //首页 banner setTimeout(function(){ $('.site-zfj').addClass('site-zfj-anim'); setTimeout(function(){ $('.site-desc').addClass('site-desc-anim') }, 5000) }, 100); //数字前置补零 var digit = function(num, length, end){ var str = ''; num = String(num); length = length || 2; for(var i = num.length; i < length; i++){ str += '0'; } return num < Math.pow(10, length) ? str + (num|0) : num; }; //下载倒计时 var setCountdown = $('#setCountdown'); if($('#setCountdown')[0]){ $.get('/api/getTime', function(res){ util.countdown(new Date(2017,7,21,8,30,0), new Date(res.time), function(date, serverTime, timer){ var str = digit(date[1]) + ':' + digit(date[2]) + ':' + digit(date[3]); setCountdown.children('span').html(str); }); },'jsonp'); } //Adsense ;!function(){ var len = $('.adsbygoogle').length; try { for(var i = 0; i < len; i++){ (adsbygoogle = window.adsbygoogle || []).push({}); } } catch (e){ console.error(e) } }(); //展示当前版本 $('.site-showv').html(layui.v); //获取Github数据 var getStars = $('#getStars'); if(getStars[0]){ var res = {"stargazers_count":'8.1k'} getStars.html(res.stargazers_count); } //首页操作 (function(){ var elemDowns = $('.site-showdowns'); //获取下载数 if(elemDowns[0]){ var res = {"number":2356878,"title":"layui下载量"}; elemDowns.html(res.number); } //记录下载 $('.site-down').on('click',function(e){ var othis = $(this) ,local = layui.data('layui') ,setHandle = function(){ }; if(!local.disclaimer){ e.preventDefault(); layer.confirm([ '
' ,'请先阅读《layui 开源界面框架免责声明》' ,',再进行下载
' ].join(''), { title: '下载提示' ,btn: ['已阅读', '取消'] ,maxWidth: 750 }, function(index){ layui.data('layui', { key: 'disclaimer' ,value: new Date().getTime() }); layer.close(index); othis[0].click(); setHandle(); }); } else { setHandle(); } }); })(); //固定Bar util.fixbar({ showHeight: 60 ,css: function(){ if(global.pageType === 'demo'){ return {bottom: 75} } }() }); //窗口scroll ;!function(){ var main = $('.site-menu'), scroll = function(){ var stop = $(window).scrollTop(); if($(window).width() <= 992) return; var bottom = $('.footer').offset().top - $(window).height(); if(stop > 60){ //211 if(!main.hasClass('site-fix')){ main.addClass('site-fix').css({ width: main.parent().width() }); } }else { if(main.hasClass('site-fix')){ main.removeClass('site-fix').css({ width: 'auto' }); } } stop = null; }; scroll(); $(window).on('scroll', scroll); }(); //示例页面滚动 $(window).on('scroll', function(){ /* var elemDate = $('.layui-laydate,.layui-colorpicker-main') if(elemDate[0]){ elemDate.each(function(){ var othis = $(this); if(!othis.hasClass('layui-laydate-static')){ othis.remove(); } }); $('input').blur(); } */ var elemTips = $('.layui-table-tips'); if(elemTips[0]) elemTips.remove(); if($('.layui-layer')[0]){ layer.closeAll('tips'); } }); //代码修饰 layui.code({ elem: 'pre' }); //目录 var siteDir = $('.site-dir'); if(siteDir[0] && $(window).width() > 750){ layer.ready(function(){ layer.open({ type: 1 ,content: siteDir ,skin: 'layui-layer-dir' ,area: 'auto' ,maxHeight: $(window).height() - 300 ,title: '目录' ,closeBtn: false ,offset: 'r' ,shade: false ,success: function(layero, index){ layer.style(index, { marginLeft: -15 }); } }); }); siteDir.find('li').on('click', function(){ var othis = $(this); othis.find('a').addClass('layui-this'); othis.siblings().find('a').removeClass('layui-this'); }); } //在textarea焦点处插入字符 var focusInsert = function(str){ var start = this.selectionStart ,end = this.selectionEnd ,offset = start + str.length this.value = this.value.substring(0, start) + str + this.value.substring(end); this.setSelectionRange(offset, offset); }; //演示页面 $('body').on('keydown', '#LAY_editor, .site-demo-text', function(e){ var key = e.keyCode; if(key === 9 && window.getSelection){ e.preventDefault(); focusInsert.call(this, ' '); } }); var editor = $('#LAY_editor') ,iframeElem = $('#LAY_demo') ,runCodes = function(){ if(!iframeElem[0]) return; var html = editor.val(); var iframeDocument = iframeElem.prop('contentWindow').document; iframeDocument.open(); iframeDocument.write(html); iframeDocument.close(); }; $('#LAY_demo_run').on('click', runCodes), runCodes(); //让导航在最佳位置 var setScrollTop = function(thisItem, elemScroll){ if(thisItem[0]){ var itemTop = thisItem.offset().top ,winHeight = $(window).height(); if(itemTop > winHeight - 160){ elemScroll.animate({'scrollTop': itemTop - winHeight/2}, 200); } } } //让选中的菜单保持在可视范围内 util.toVisibleArea({ scrollElem: $('.layui-side-scroll').eq(0) ,thisElem: $('.site-demo-nav').find('dd.layui-this') }); util.toVisibleArea({ scrollElem: $('.layui-side-scroll').eq(1) ,thisElem: $('.site-demo-table-nav').find('li.layui-this') }); //查看代码 $(function(){ var DemoCode = $('#LAY_democode'); DemoCode.val([ DemoCode.val() ,'' ,global.preview ,'\n' ,'\n' ,$('#LAY_democodejs').html() ,'\n\n' ].join('')); }); //点击查看代码选项 element.on('tab(demoTitle)', function(obj){ if(obj.index === 1){ if(device.ie && device.ie < 9){ layer.alert('强烈不推荐你通过ie8/9 查看代码!因为,所有的标签都会被格式成大写,且没有换行符,影响阅读'); } } }) //手机设备的简单适配 var treeMobile = $('.site-tree-mobile') ,shadeMobile = $('.site-mobile-shade') treeMobile.on('click', function(){ $('body').addClass('site-mobile'); }); shadeMobile.on('click', function(){ $('body').removeClass('site-mobile'); }); //愚人节 ;!function(){ if(elemHome.data('date') === '4-1'){ return if(local['20180401']) return; elemHome.addClass('site-out-up'); setTimeout(function(){ layer.photos({ photos: { "data": [{ "src": "//cdn.layui.com/upload/2018_4/168_1522515820513_397.png", }] } ,anim: 2 ,shade: 1 ,move: false ,end: function(){ layer.msg('愚公,快醒醒!', { shade: 1 }, function(){ layui.data('layui', { key: '20180401' ,value: true }); }); } ,success: function(layero, index){ elemHome.removeClass('site-out-up'); layero.find('#layui-layer-photos').on('click', function(){ layer.close(layero.attr('times')); }).find('.layui-layer-imgsee').remove(); } }); }, 1000*3); } }(); //获取文档图标数据 home.getIconData = function(){ var $ = layui.$ ,iconData = [] ,iconListElem = $('.site-doc-icon li'); iconListElem.each(function(){ var othis = $(this); iconData.push({ title: $.trim(othis.find('.doc-icon-name').text()) ,fontclass: $.trim(othis.find('.doc-icon-fontclass').text()) ,unicode: $.trim(othis.find('.doc-icon-code').html()) }); }); $('.site-h1').html(''); }; exports('global', home); });