Add a fixed: option to bootstrap.popover and use it

(imported from commit fe8768b8a320df7670c204880bffb3932568cc5e)
This commit is contained in:
Leo Franchi
2013-06-10 14:13:51 -04:00
parent b27bb3fc33
commit 0fa857d524
3 changed files with 15 additions and 2 deletions

View File

@@ -76,6 +76,7 @@ function set_app_sticky_popover() {
"content": templates.render('sticky_app_popover'),
"html": true,
"trigger": "manual",
fixed: true,
// This is unfortunately what you have to do to set
// a custom width for a popover.
"template": '<div class="popover"><div class="arrow">' +

View File

@@ -1242,7 +1242,8 @@ $(function () {
content: templates.render('user_sidebar_actions', {'email': email,
'name': name}),
placement: "left",
trigger: "manual"
trigger: "manual",
fixed: true
});
$(e.target).popover("show");
current_user_sidebar_elem = $(e.target);
@@ -1280,7 +1281,8 @@ $(function () {
var ypos = $(e.target).offset().top - viewport.scrollTop();
$(e.target).popover({
content: templates.render('stream_sidebar_actions', {'stream': subs.have(stream)}),
trigger: "manual"
trigger: "manual",
fixed: true
});
// This little function is a workaround for the fact that

View File

@@ -1221,6 +1221,7 @@
, actualHeight
, placement
, tp
, newtop
if (this.hasContent() && this.enabled) {
$tip = this.tip()
@@ -1261,6 +1262,14 @@
break
}
if (this.options.fixed) {
// If using position: fixed, position relative to top of
// viewport
newtop = tp.top - $(document).scrollTop()
tp = $.extend(tp, {top: newtop,
position: 'fixed'})
}
$tip
.css(tp)
.addClass(placement)
@@ -1388,6 +1397,7 @@
, title: ''
, delay: 0
, html: true
, fixed: false
}
}(window.jQuery);