aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Rebert <[email protected]>2014-07-06 00:36:52 -0700
committerChris Rebert <[email protected]>2014-07-06 00:36:52 -0700
commita34e52de4d5c95b4c1db448c298ce1ee9d8414c4 (patch)
tree9244daf8379dfa440938f2eb76cf62c145592b43
parent5830febd9a37bc147ae5f368607e5dcdc562ddf9 (diff)
parentf9ffb4993215687bb241cab1151956e6df1922cd (diff)
downloadbootstrap-a34e52de4d5c95b4c1db448c298ce1ee9d8414c4.tar.xz
bootstrap-a34e52de4d5c95b4c1db448c298ce1ee9d8414c4.zip
Merge pull request #14015 from twbs/possible-14013-fix
Possible fix for #14013
-rw-r--r--dist/js/bootstrap.js9
-rw-r--r--js/tooltip.js13
2 files changed, 16 insertions, 6 deletions
diff --git a/dist/js/bootstrap.js b/dist/js/bootstrap.js
index 6e2697214..db93bc258 100644
--- a/dist/js/bootstrap.js
+++ b/dist/js/bootstrap.js
@@ -1418,11 +1418,14 @@ if (typeof jQuery === 'undefined') { throw new Error('Bootstrap\'s JavaScript re
$element = $element || this.$element
var el = $element[0]
var isBody = el.tagName == 'BODY'
- return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : null, {
- scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop(),
+ var isSvg = window.SVGElement && el instanceof window.SVGElement
+ var outerDims = isSvg ? {} : {
width: isBody ? $(window).width() : $element.outerWidth(),
height: isBody ? $(window).height() : $element.outerHeight()
- }, isBody ? { top: 0, left: 0 } : $element.offset())
+ }
+ return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : null, {
+ scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop()
+ }, outerDims, isBody ? { top: 0, left: 0 } : $element.offset())
}
Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
diff --git a/js/tooltip.js b/js/tooltip.js
index 9cdb6c9e4..b305bc5ab 100644
--- a/js/tooltip.js
+++ b/js/tooltip.js
@@ -316,13 +316,20 @@
Tooltip.prototype.getPosition = function ($element) {
$element = $element || this.$element
+
var el = $element[0]
var isBody = el.tagName == 'BODY'
- return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : null, {
- scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop(),
+ var isSvg = window.SVGElement && el instanceof window.SVGElement
+
+ var elRect = typeof el.getBoundingClientRect == 'function' ? el.getBoundingClientRect() : null
+ var elOffset = isBody ? { top: 0, left: 0 } : $element.offset()
+ var scroll = { scroll: isBody ? document.documentElement.scrollTop || document.body.scrollTop : $element.scrollTop() }
+ var outerDims = isSvg ? {} : {
width: isBody ? $(window).width() : $element.outerWidth(),
height: isBody ? $(window).height() : $element.outerHeight()
- }, isBody ? { top: 0, left: 0 } : $element.offset())
+ }
+
+ return $.extend({}, elRect, scroll, outerDims, elOffset)
}
Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {