diff options
Diffstat (limited to 'js')
| -rw-r--r-- | js/modal.js | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/js/modal.js b/js/modal.js index ec358696f..a55363728 100644 --- a/js/modal.js +++ b/js/modal.js @@ -14,11 +14,12 @@ // ====================== var Modal = function (element, options) { - this.options = options - this.$body = $(document.body) - this.$element = $(element) - this.$backdrop = - this.isShown = null + this.options = options + this.$body = $(document.body) + this.$element = $(element) + this.$backdrop = + this.isShown = null + this.scrollbarWidth = 0 if (this.options.remote) { this.$element @@ -49,6 +50,7 @@ this.isShown = true + this.checkScrollbar() this.$body.addClass('modal-open') this.setScrollbar() @@ -195,11 +197,14 @@ } } + Modal.prototype.checkScrollbar = function () { + if (document.body.clientWidth >= window.innerWidth) return + this.scrollbarWidth = this.scrollbarWidth || this.measureScrollbar() + } + Modal.prototype.setScrollbar = function () { - if (document.body.clientHeight <= window.innerHeight) return - var scrollbarWidth = this.measureScrollbar() - var bodyPad = parseInt(this.$body.css('padding-right') || 0) - if (scrollbarWidth) this.$body.css('padding-right', bodyPad + scrollbarWidth) + var bodyPad = parseInt(this.$body.css('padding-right') || 0) + if (this.scrollbarWidth) this.$body.css('padding-right', bodyPad + this.scrollbarWidth) } Modal.prototype.resetScrollbar = function () { |
