[FIX] tour.js: popover position when scrolling down

This commit is contained in:
Christophe Matthieu 2014-10-24 12:14:15 +02:00
parent c68ecbe093
commit f2c5946051
1 changed files with 11 additions and 3 deletions

View File

@ -241,12 +241,20 @@ var Tour = {
},
repositionPopover: function() {
var popover = Tour.$element.data("bs.popover");
var $tip = Tour.$element.data("bs.popover").tip();
var $tip = popover.tip();
if (popover.options.orphan) {
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;
offsetWidth = $tip[0].offsetWidth;
offsetHeight = $tip[0].offsetHeight;
@ -270,10 +278,10 @@ var Tour = {
$tip.offset(tipOffset);
if (popover.options.placement === "bottom" || popover.options.placement === "top") {
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") {
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,