/** * @Name: 基于layui * @Author: 潘晨晨 * 最近修改时间: 2021/04/22 */ layui.define(['jquery'],function(exports){ var $ = layui.jquery; var obj ={ init:function(element){ //默认 element.data = element.data || [ {name:'暂无数据'}] element.rows = element.rows || 1 element.moreUpText = element.moreUpText || '更多' element.moreDownText = element.moreDownText || '收起' element.href = element.href || false element.herfBlank = element.herfBlank?'_blank':'_self' element.themeColor = element.themeColor || 'green' element.size = element.size ? 'layui-btn-'+element.size :'layui-btn' var html; var box = $(element.elemId); var boxHeight ; var itemHeight ; var flag = true; // 如果外面包裹了pack的变false var dyc = false; box.addClass('box-item-pcc'); element.data.forEach(e=>{ boxHeight = box.height(); itemHeight = $('.item-pcc').outerHeight(true); element.href ? html = ''+e.name+'':html = ''+e.name+'' if((boxHeight>itemHeight*element.rows) && flag){ morePosition(); flag =false; } box.append(html); }) boxHeight = box.height(); itemHeight = $('.item-pcc').outerHeight(true); if(boxHeight>itemHeight*element.rows){ more(); //第一次渲染页面 dyc =true } $(document).on('click','#more-pcc',function(){ //点击更多 more() }) function morePosition(el){ if(flag){ if(el&&dyc){ //如果不是第一次渲染并且 box.find('#more-box-pcc').remove(); } else{ $('.item-pcc').wrapAll("") } var list = $('.pack-pcc .item-pcc').eq(-3); list.before(''+element.moreUpText+''); } } function more(){ if(box.height()>itemHeight*element.rows){ box.css('height',itemHeight*element.rows); morePosition(true) }else{ box.css('height','auto'); box.find('#more-box-pcc').remove(); box.append(''+element.moreDownText+''); flag = true; } } } } var $style = $(''); $($('head')[0]).append($style); exports('moreMenus',obj); });