[FIX] tour.js: popover position when scrolling down
This commit is contained in:
parent
c68ecbe093
commit
f2c5946051
|
@ -241,12 +241,20 @@ var Tour = {
|
||||||
},
|
},
|
||||||
repositionPopover: function() {
|
repositionPopover: function() {
|
||||||
var popover = Tour.$element.data("bs.popover");
|
var popover = Tour.$element.data("bs.popover");
|
||||||
var $tip = Tour.$element.data("bs.popover").tip();
|
var $tip = popover.tip();
|
||||||
|
|
||||||
if (popover.options.orphan) {
|
if (popover.options.orphan) {
|
||||||
return $tip.css("top", $(window).outerHeight() / 2 - $tip.outerHeight() / 2);
|
return $tip.css("top", $(window).outerHeight() / 2 - $tip.outerHeight() / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (Tour.$element.parents("div").filter(function(){ return getComputedStyle(this).position === 'fixed'; }).length) {
|
||||||
|
var pos = popover.getPosition();
|
||||||
|
var top = pos.top;
|
||||||
|
if (popover.options.placement === "top") top -= $tip.height();
|
||||||
|
if (popover.options.placement === "bottom") top += pos.height;
|
||||||
|
$tip.css({'top': top+'px'});
|
||||||
|
}
|
||||||
|
|
||||||
var offsetBottom, offsetHeight, offsetRight, offsetWidth, originalLeft, originalTop, tipOffset;
|
var offsetBottom, offsetHeight, offsetRight, offsetWidth, originalLeft, originalTop, tipOffset;
|
||||||
offsetWidth = $tip[0].offsetWidth;
|
offsetWidth = $tip[0].offsetWidth;
|
||||||
offsetHeight = $tip[0].offsetHeight;
|
offsetHeight = $tip[0].offsetHeight;
|
||||||
|
@ -270,10 +278,10 @@ var Tour = {
|
||||||
$tip.offset(tipOffset);
|
$tip.offset(tipOffset);
|
||||||
if (popover.options.placement === "bottom" || popover.options.placement === "top") {
|
if (popover.options.placement === "bottom" || popover.options.placement === "top") {
|
||||||
var left = Tour.$element.offset().left + Tour.$element.outerWidth()/2 - tipOffset.left;
|
var left = Tour.$element.offset().left + Tour.$element.outerWidth()/2 - tipOffset.left;
|
||||||
$tip.find(".arrow").css("left", left ? left + "px" : "");
|
popover.arrow().css("left", left ? left + "px" : "");
|
||||||
} else if (popover.options.placement !== "auto") {
|
} else if (popover.options.placement !== "auto") {
|
||||||
var top = Tour.$element.offset().top + Tour.$element.outerHeight()/2 - tipOffset.top;
|
var top = Tour.$element.offset().top + Tour.$element.outerHeight()/2 - tipOffset.top;
|
||||||
$tip.find(".arrow").css("top", top ? top + "px" : "");
|
popover.arrow().css("top", top ? top + "px" : "");
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
_load_template: false,
|
_load_template: false,
|
||||||
|
|
Loading…
Reference in New Issue