/* * 模块高度自适应,对外接口,功能待扩展 * */ /** * 高度自适应模块,预览模式下触发 TODO:面向对象写法 */ function wp_heightAdapt(dom,oldHeight) { if(dom== undefined) return false; if ($.inArray(dom.attr("type"), ['bslider']) != -1) return; var heightfunc=function(){ var before=dom.data('oriheight'); if(!before){ before=dom.children('div').eq(0).height(); dom.data('oriheight',before); } return before; } var resetPos=function(el){ var oritop=el.data('adaptoritop'); var oriheight=el.data('adaptoriheight'); var pressArr=el.data('adaptpress'); var wrapArr=el.data('adaptwrap'); var id=dom.prop('id'); var toppos=$.parseInteger(el.css('top')); if(!oritop&&oritop !==0){ el.data('adaptoritop',toppos); el.data('adaptoriheight',el.height()); return; } if(pressArr && pressArr.length){ for(var i=0;i right_boundray) return true; if(dom.attr('id') == $(this).attr('id')) return true;//自己除外 //包在高度自适应模块外面的模块也要改变高度 if((tmp_left <= left_boundray && tmp_left+tmp_width >= right_boundray) && (tmp_top <= moduleTop && tmp_top+tmp_height >= moduleTop+moduleLayerHeight)) { wrapList.push($(this).attr('id')); return true; } if($(this).parent().hasClass('full_content') || $(this).parent().hasClass('footer_content')) return true;//通栏和底部元素暂时不考虑 } if(tmp_top >= (moduleTop + moduleLayerHeight)) { pressList.push($(this).attr('id')); if(minTop == 0) {minTop = tmp_top;minId = $(this).attr('id');} else { if(minTop > tmp_top) {minTop = tmp_top;minId = $(this).attr('id');} } } }); //ceshi offsetY = $("#"+minId).ab_pos_cnter('top') - (moduleTop + moduleLayerHeight); if(pressList.length > 0 && (moduleTop + moduleHeight) >= minTop) { diffY = moduleTop + moduleHeight + offsetY - minTop; for(var i = 0;i < pressList.length;i++) { var theel=$("#"+pressList[i]); theel.css('top',(parseInt(theel.ab_pos_cnter('top'))+diffY)+'px'); var pressArrOld=theel.data('adaptpress'); if(!pressArrOld) pressArrOld=[]; var pressArr=[]; for(var j=0;j 0) { for(var i = 0;i < wrapList.length;i++) { var diffH=moduleHeight-moduleLayerHeight; var theel=$("#"+wrapList[i]); theel.height($("#"+wrapList[i]).height()+(diffH)); var wrapListPadding = parseInt(theel.children('div').eq(0).css('padding-top')) + parseInt($("#"+wrapList[i]).children('div').eq(0).css('padding-bottom')); var wrapListBorder = parseInt(theel.children('div').eq(0).css('border-top-width')) + parseInt($("#"+wrapList[i]).children('div').eq(0).css('border-bottom-width')); theel.children('div').eq(0).height(theel.height() - wrapListPadding - wrapListBorder); var wrapArrOld=theel.data('adaptwrap'); if(!wrapArrOld) wrapArrOld=[]; var wrapArr=[]; for(var j=0;j