Browse Source
Merge in VISUAL/fineui from ~GUY/fineui:master to master * commit 'b13fd63687e5618648c8a4af5447ec744c3aae23': feature: sticky布局es6
guy
3 years ago
2 changed files with 76 additions and 0 deletions
@ -0,0 +1,38 @@ |
|||||||
|
/** |
||||||
|
* 横向黏性布局 |
||||||
|
*/ |
||||||
|
BI.HorizontalStickyLayout = BI.inherit(BI.FlexHorizontalLayout, { |
||||||
|
props: function () { |
||||||
|
return BI.extend(BI.HorizontalStickyLayout.superclass.props.apply(this, arguments), { |
||||||
|
extraCls: "bi-h-sticky", |
||||||
|
horizontalAlign: BI.HorizontalAlign.Stretch, |
||||||
|
verticalAlign: BI.VerticalAlign.Stretch |
||||||
|
}); |
||||||
|
}, |
||||||
|
|
||||||
|
_addElement: function (i, item) { |
||||||
|
var o = this.options; |
||||||
|
var w = BI.HorizontalStickyLayout.superclass._addElement.apply(this, arguments); |
||||||
|
var columnSize = o.columnSize.length > 0 ? o.columnSize[i] : item.width >= 1 ? null : item.width; |
||||||
|
if (o.columnSize.length > 0) { |
||||||
|
if (item.width >= 1 && o.columnSize[i] >= 1 && o.columnSize[i] !== item.width) { |
||||||
|
columnSize = null; |
||||||
|
} |
||||||
|
} |
||||||
|
if (columnSize !== "fill") { |
||||||
|
var firstItemFill = o.columnSize[0] === "fill" || o.items[0].width === "fill"; |
||||||
|
w.element.css({ |
||||||
|
position: "sticky", |
||||||
|
zIndex: 1, |
||||||
|
left: firstItemFill ? "" : 0, |
||||||
|
right: firstItemFill ? 0 : "" |
||||||
|
}); |
||||||
|
} else { |
||||||
|
w.element.css({ |
||||||
|
overflow: "" |
||||||
|
}); |
||||||
|
} |
||||||
|
return w; |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.shortcut("bi.horizontal_sticky", BI.HorizontalStickyLayout); |
@ -0,0 +1,38 @@ |
|||||||
|
/** |
||||||
|
* 纵向黏性布局 |
||||||
|
*/ |
||||||
|
BI.VerticalStickyLayout = BI.inherit(BI.FlexVerticalLayout, { |
||||||
|
props: function () { |
||||||
|
return BI.extend(BI.VerticalStickyLayout.superclass.props.apply(this, arguments), { |
||||||
|
extraCls: "bi-v-sticky", |
||||||
|
horizontalAlign: BI.HorizontalAlign.Stretch, |
||||||
|
verticalAlign: BI.VerticalAlign.Stretch |
||||||
|
}); |
||||||
|
}, |
||||||
|
|
||||||
|
_addElement: function (i, item) { |
||||||
|
var o = this.options; |
||||||
|
var w = BI.VerticalStickyLayout.superclass._addElement.apply(this, arguments); |
||||||
|
var rowSize = o.rowSize.length > 0 ? o.rowSize[i] : item.height >= 1 ? null : item.height; |
||||||
|
if (o.rowSize.length > 0) { |
||||||
|
if (item.height >= 1 && o.rowSize[i] >= 1 && o.rowSize[i] !== item.height) { |
||||||
|
rowSize = null; |
||||||
|
} |
||||||
|
} |
||||||
|
if (rowSize !== "fill") { |
||||||
|
var firstItemFill = o.rowSize[0] === "fill" || o.items[0].height === "fill"; |
||||||
|
w.element.css({ |
||||||
|
position: "sticky", |
||||||
|
zIndex: 1, |
||||||
|
top: firstItemFill ? "" : 0, |
||||||
|
bottom: firstItemFill ? 0 : "" |
||||||
|
}); |
||||||
|
} else { |
||||||
|
w.element.css({ |
||||||
|
overflow: "" |
||||||
|
}); |
||||||
|
} |
||||||
|
return w; |
||||||
|
} |
||||||
|
}); |
||||||
|
BI.shortcut("bi.vertical_sticky", BI.VerticalStickyLayout); |
Loading…
Reference in new issue