Browse Source

feature: 小三角

es6
guy 3 years ago
parent
commit
bb7e72ea3d
  1. 4
      src/base/combination/bubble.js
  2. 2
      src/base/combination/combo.js
  3. 34
      src/base/layer/layer.popup.js
  4. 32
      src/less/base/view/popupview.less

4
src/base/combination/bubble.js

@ -332,7 +332,7 @@
name: "offset",
options: {
offset: function () {
return [o.adjustXOffset, (o.showArrow ? 14 : 0) + (o.adjustYOffset + o.adjustLength)];
return [o.adjustXOffset, (o.showArrow ? 12 : 0) + (o.adjustYOffset + o.adjustLength)];
}
}
}];
@ -340,7 +340,7 @@
modifiers.push({
name: "arrow",
options: {
padding: 5,
padding: 4,
element: this.popupView.arrow.element[0]
}
});

2
src/base/combination/combo.js

@ -7,7 +7,7 @@
*/
BI.Combo = BI.inherit(BI.Bubble, {
_const: {
TRIANGLE_LENGTH: 14
TRIANGLE_LENGTH: 12
},
_defaultConfig: function () {
var conf = BI.Combo.superclass._defaultConfig.apply(this, arguments);

34
src/base/layer/layer.popup.js

@ -5,7 +5,7 @@
*/
BI.PopupView = BI.inherit(BI.Widget, {
_const: {
TRIANGLE_LENGTH: 14
TRIANGLE_LENGTH: 12
},
_defaultConfig: function (props) {
return BI.extend(BI.PopupView.superclass._defaultConfig.apply(this, arguments), {
@ -197,22 +197,22 @@ BI.PopupView = BI.inherit(BI.Widget, {
var offsetStyle = position.offsetStyle;
var middle = offsetStyle === "center" || offsetStyle === "middle";
var minLeft = Math.max(5, offset.left + 5 + popupWidth - bodyWidth);
var minRight = Math.max(5, popupWidth - (offset.left + 5));
var minTop = Math.max(5, offset.top + 5 + popupHeight - bodyHeight);
var minBottom = Math.max(5, popupHeight - (offset.top + 5));
var minLeft = Math.max(4, offset.left + 4 + popupWidth - bodyWidth);
var minRight = Math.max(4, popupWidth - (offset.left + 4));
var minTop = Math.max(4, offset.top + 4 + popupHeight - bodyHeight);
var minBottom = Math.max(4, popupHeight - (offset.top + 4));
var maxLeft = Math.min(popupWidth - 12 - 5, offset.left + position.width - 12 - 5);
var maxRight = Math.min(popupWidth - 12 - 5, bodyWidth - (offset.left + position.width - 12 - 5));
var maxTop = Math.min(popupHeight - 12 - 5, offset.top + position.height - 12 - 5);
var maxBottom = Math.min(popupHeight - 12 - 5, bodyHeight - (offset.top + position.height - 12 - 5));
var maxLeft = Math.min(popupWidth - 16 - 4, offset.left + position.width - 16 - 4);
var maxRight = Math.min(popupWidth - 16 - 4, bodyWidth - (offset.left + position.width - 16 - 4));
var maxTop = Math.min(popupHeight - 16 - 4, offset.top + position.height - 16 - 4);
var maxBottom = Math.min(popupHeight - 16 - 4, bodyHeight - (offset.top + position.height - 16 - 4));
switch (direction) {
case "bottom":
case "bottom,right":
direction = "bottom";
style = {
// 5表示留出一定的空间
left: BI.clamp(((middle ? popupWidth : position.width) - adjustXOffset) / 2 - 6, minLeft, maxLeft)
left: BI.clamp(((middle ? popupWidth : position.width) - adjustXOffset) / 2 - 8, minLeft, maxLeft)
};
wrapperStyle = {
top: o.tgap + o.vgap,
@ -231,7 +231,7 @@ BI.PopupView = BI.inherit(BI.Widget, {
case "bottom,left":
direction = "bottom";
style = {
right: BI.clamp(((middle ? popupWidth : position.width) + adjustXOffset) / 2 - 6, minRight, maxRight)
right: BI.clamp(((middle ? popupWidth : position.width) + adjustXOffset) / 2 - 8, minRight, maxRight)
};
wrapperStyle = {
top: o.bgap + o.vgap,
@ -251,7 +251,7 @@ BI.PopupView = BI.inherit(BI.Widget, {
case "top,right":
direction = "top";
style = {
left: BI.clamp(((middle ? popupWidth : position.width) - adjustXOffset) / 2 - 6, minLeft, maxLeft)
left: BI.clamp(((middle ? popupWidth : position.width) - adjustXOffset) / 2 - 8, minLeft, maxLeft)
};
wrapperStyle = {
bottom: o.bgap + o.vgap,
@ -270,7 +270,7 @@ BI.PopupView = BI.inherit(BI.Widget, {
case "top,left":
direction = "top";
style = {
right: BI.clamp(((middle ? popupWidth : position.width) + adjustXOffset) / 2 - 6, minRight, maxRight)
right: BI.clamp(((middle ? popupWidth : position.width) + adjustXOffset) / 2 - 8, minRight, maxRight)
};
wrapperStyle = {
bottom: o.bgap + o.vgap,
@ -290,7 +290,7 @@ BI.PopupView = BI.inherit(BI.Widget, {
case "left,bottom":
direction = "left";
style = {
top: BI.clamp(((middle ? popupHeight : position.height) - adjustYOffset) / 2 - 6, minTop, maxTop)
top: BI.clamp(((middle ? popupHeight : position.height) - adjustYOffset) / 2 - 8, minTop, maxTop)
};
wrapperStyle = {
right: o.rgap + o.hgap,
@ -309,7 +309,7 @@ BI.PopupView = BI.inherit(BI.Widget, {
case "left,top":
direction = "left";
style = {
bottom: BI.clamp(((middle ? popupHeight : position.height) + adjustYOffset) / 2 - 6, minBottom, maxBottom)
bottom: BI.clamp(((middle ? popupHeight : position.height) + adjustYOffset) / 2 - 8, minBottom, maxBottom)
};
wrapperStyle = {
right: o.rgap + o.hgap,
@ -329,7 +329,7 @@ BI.PopupView = BI.inherit(BI.Widget, {
case "right,bottom":
direction = "right";
style = {
top: BI.clamp(((middle ? popupHeight : position.height) - adjustYOffset) / 2 - 6, minTop, maxTop)
top: BI.clamp(((middle ? popupHeight : position.height) - adjustYOffset) / 2 - 8, minTop, maxTop)
};
wrapperStyle = {
left: o.lgap + o.hgap,
@ -348,7 +348,7 @@ BI.PopupView = BI.inherit(BI.Widget, {
case "right,top":
direction = "right";
style = {
bottom: BI.clamp(((middle ? popupHeight : position.height) + adjustYOffset) / 2 - 6, minBottom, maxBottom)
bottom: BI.clamp(((middle ? popupHeight : position.height) + adjustYOffset) / 2 - 8, minBottom, maxBottom)
};
wrapperStyle = {
left: o.lgap + o.hgap,

32
src/less/base/view/popupview.less

@ -32,11 +32,11 @@
bottom: 0;
left: 0;
> .bi-bubble-arrow {
bottom: -14px;
width: 18px;
bottom: -12px;
width: 16px;
> .bubble-arrow {
bottom: 8px;
left: 2px;
bottom: 7px;
left: 1px;
}
}
}
@ -46,11 +46,11 @@
top: 0;
left: 0;
> .bi-bubble-arrow {
top: -14px;
width: 18px;
top: -12px;
width: 16px;
> .bubble-arrow {
top: 8px;
left: 2px;
top: 7px;
left: 1px;
}
}
}
@ -60,11 +60,11 @@
right: 0;
top: 0;
> .bi-bubble-arrow {
right: -14px;
height: 18px;
right: -12px;
height: 16px;
> .bubble-arrow {
right: 8px;
top: 2px;
right: 7px;
top: 1px;
}
}
}
@ -74,11 +74,11 @@
left: 0;
top: 0;
> .bi-bubble-arrow {
left: -14px;
height: 18px;
left: -12px;
height: 16px;
> .bubble-arrow {
left: 8px;
top: 2px;
left: 7px;
top: 1px;
}
}
}

Loading…
Cancel
Save