Browse Source

布局大一统

es6
guy 4 years ago
parent
commit
acb54c91ea
  1. 69
      src/core/platform/web/config.js

69
src/core/platform/web/config.js

@ -20,7 +20,7 @@ BI.prepares.push(function () {
} }
// 在横向自适应场景下我们需要使用table的自适应撑出滚动条的特性(flex处理不了这种情况) // 在横向自适应场景下我们需要使用table的自适应撑出滚动条的特性(flex处理不了这种情况)
// 主要出现在center_adapt或者horizontal_adapt的场景,或者主动设置horizontalAlign的场景 // 主要出现在center_adapt或者horizontal_adapt的场景,或者主动设置horizontalAlign的场景
if (ob.horizontalAlign === BI.HorizontalAlign.Center || ob.horizontalAlign === BI.HorizontalAlign.Stretch) { // if (ob.horizontalAlign === BI.HorizontalAlign.Center || ob.horizontalAlign === BI.HorizontalAlign.Stretch) {
// 虽然有两个元素以上的时候,有场景是控制一个显示一个隐藏的效果,还无法通过flex来实现 // 虽然有两个元素以上的时候,有场景是控制一个显示一个隐藏的效果,还无法通过flex来实现
// var justOneItem = (ob.items && ob.items.length <= 1); // var justOneItem = (ob.items && ob.items.length <= 1);
// // 在这种情况下,也可以通过flex支持该布局 // // 在这种情况下,也可以通过flex支持该布局
@ -42,8 +42,8 @@ BI.prepares.push(function () {
// ? BI.HorizontalAlign.Left : ob.horizontalAlign // ? BI.HorizontalAlign.Left : ob.horizontalAlign
// }); // });
// } // }
return BI.extend({}, ob, {type: "bi.table_adapt"}); // return BI.extend({}, ob, {type: "bi.table_adapt"});
} // }
if (supportFlex) { if (supportFlex) {
// IE下其实也是可以使用flex布局的,只要排除掉出现滚动条的情况 // IE下其实也是可以使用flex布局的,只要排除掉出现滚动条的情况
// if (!isIE || (ob.scrollable !== true && ob.scrolly !== true)) { // if (!isIE || (ob.scrollable !== true && ob.scrolly !== true)) {
@ -56,41 +56,42 @@ BI.prepares.push(function () {
// type: "bi.inline" // type: "bi.inline"
// }); // });
// } // }
return BI.extend({}, ob, {type: "bi.inline"});
// 否则采用table,不过horizontalAlign的right就不支持了。 // 否则采用table,不过horizontalAlign的right就不支持了。
return BI.extend({}, ob, {type: "bi.table_adapt"}); // return BI.extend({}, ob, {type: "bi.table_adapt"});
}); });
BI.Plugin.configWidget("bi.center_adapt", function (ob) { // BI.Plugin.configWidget("bi.center_adapt", function (ob) {
var supportFlex = isSupportFlex(), justOneItem = (ob.items && ob.items.length <= 1); // var supportFlex = isSupportFlex(), justOneItem = (ob.items && ob.items.length <= 1);
var isAdapt = !ob.horizontalAlign || ob.horizontalAlign === BI.HorizontalAlign.Center || ob.horizontalAlign === BI.HorizontalAlign.Stretch; // var isAdapt = !ob.horizontalAlign || ob.horizontalAlign === BI.HorizontalAlign.Center || ob.horizontalAlign === BI.HorizontalAlign.Stretch;
if (!isAdapt || justOneItem) { // if (!isAdapt || justOneItem) {
if (supportFlex) { // if (supportFlex) {
// IE下其实也是可以使用flex布局的,只要排除掉出现滚动条的情况 // // IE下其实也是可以使用flex布局的,只要排除掉出现滚动条的情况
// if (!isIE || (ob.scrollable !== true && ob.scrollx !== true && ob.scrolly !== true)) { // // if (!isIE || (ob.scrollable !== true && ob.scrollx !== true && ob.scrolly !== true)) {
return BI.extend({}, ob, {type: "bi.flex_center_adapt"}); // return BI.extend({}, ob, {type: "bi.flex_center_adapt"});
// // }
// } // }
} // if (!BI.isIE() || BI.getIEVersion() >= 8) {
if (!BI.isIE() || BI.getIEVersion() >= 8) { // return BI.extend({}, ob, {type: "bi.inline_center_adapt"});
return BI.extend({}, ob, {type: "bi.inline_center_adapt"});
}
}
return ob;
});
BI.Plugin.configWidget("bi.vertical_adapt", function (ob) {
var supportFlex = isSupportFlex(), justOneItem = (ob.items && ob.items.length <= 1);
var isAdapt = ob.horizontalAlign === BI.HorizontalAlign.Center || ob.horizontalAlign === BI.HorizontalAlign.Stretch;
if (!isAdapt || justOneItem) {
if (supportFlex) {
// IE下其实也是可以使用flex布局的,只要排除掉出现滚动条的情况
// if (!isIE || (ob.scrollable !== true && ob.scrolly !== true)) {
return BI.extend({}, ob, {type: "bi.flex_vertical_adapt"});
// } // }
} // }
if (!BI.isIE() || BI.getIEVersion() > 8) { // return ob;
return BI.extend({}, ob, {type: "bi.inline_vertical_adapt"}); // });
} // BI.Plugin.configWidget("bi.vertical_adapt", function (ob) {
} // var supportFlex = isSupportFlex(), justOneItem = (ob.items && ob.items.length <= 1);
return ob; // var isAdapt = ob.horizontalAlign === BI.HorizontalAlign.Center || ob.horizontalAlign === BI.HorizontalAlign.Stretch;
}); // if (!isAdapt || justOneItem) {
// if (supportFlex) {
// // IE下其实也是可以使用flex布局的,只要排除掉出现滚动条的情况
// // if (!isIE || (ob.scrollable !== true && ob.scrolly !== true)) {
// return BI.extend({}, ob, {type: "bi.flex_vertical_adapt"});
// // }
// }
// if (!BI.isIE() || BI.getIEVersion() > 8) {
// return BI.extend({}, ob, {type: "bi.inline_vertical_adapt"});
// }
// }
// return ob;
// });
BI.Plugin.configWidget("bi.horizontal_adapt", function (ob) { BI.Plugin.configWidget("bi.horizontal_adapt", function (ob) {
var justOneItem = (ob.items && ob.items.length <= 1); var justOneItem = (ob.items && ob.items.length <= 1);
if (!ob.verticalAlign || ob.verticalAlign === BI.VerticalAlign.TOP) { if (!ob.verticalAlign || ob.verticalAlign === BI.VerticalAlign.TOP) {

Loading…
Cancel
Save