Merge pull request #442 from tiwariav/bugfix/3645/modal-show
Bugfix/3645 navbar movement on modal show/hide
This commit is contained in:
commit
ab4e7feedd
1 changed files with 50 additions and 0 deletions
|
@ -13,4 +13,54 @@ $( document ).ready(function() {
|
||||||
}, 1000);
|
}, 1000);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
function getScrollbarWidth() {
|
||||||
|
var outer = document.createElement("div");
|
||||||
|
outer.style.visibility = "hidden";
|
||||||
|
outer.style.width = "100px";
|
||||||
|
outer.style.msOverflowStyle = "scrollbar"; // needed for WinJS apps
|
||||||
|
|
||||||
|
document.body.appendChild(outer);
|
||||||
|
|
||||||
|
var widthNoScroll = outer.offsetWidth;
|
||||||
|
// force scrollbars
|
||||||
|
outer.style.overflow = "scroll";
|
||||||
|
|
||||||
|
// add innerdiv
|
||||||
|
var inner = document.createElement("div");
|
||||||
|
inner.style.width = "100%";
|
||||||
|
outer.appendChild(inner);
|
||||||
|
|
||||||
|
var widthWithScroll = inner.offsetWidth;
|
||||||
|
|
||||||
|
// remove divs
|
||||||
|
outer.parentNode.removeChild(outer);
|
||||||
|
|
||||||
|
return widthNoScroll - widthWithScroll;
|
||||||
|
}
|
||||||
|
|
||||||
|
// globally stores the width of scrollbar
|
||||||
|
var scrollbarWidth = getScrollbarWidth();
|
||||||
|
var paddingAdjusted = false;
|
||||||
|
|
||||||
|
$( document ).ready(function() {
|
||||||
|
// add proper padding to fixed topnav on modal show
|
||||||
|
$('body').on('click', '[data-toggle=modal]', function(){
|
||||||
|
var $body = $('body');
|
||||||
|
if ($body[0].scrollHeight > $body.height()) {
|
||||||
|
scrollbarWidth = getScrollbarWidth();
|
||||||
|
var topnavPadding = parseInt($('.navbar-fixed-top.topnav').css('padding-right'));
|
||||||
|
$('.navbar-fixed-top.topnav').css('padding-right', topnavPadding+scrollbarWidth);
|
||||||
|
paddingAdjusted = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// remove added padding on modal hide
|
||||||
|
$('body').on('hidden.bs.modal', function(){
|
||||||
|
if (paddingAdjusted) {
|
||||||
|
var topnavPadding = parseInt($('.navbar-fixed-top.topnav').css('padding-right'));
|
||||||
|
$('.navbar-fixed-top.topnav').css('padding-right', topnavPadding-scrollbarWidth);
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
Loading…
Reference in a new issue