Datepicker: Fixed #4348 - Datepicker positioned outside body when scrollbar enabled

This commit is contained in:
Keith Wood 2009-04-10 10:09:03 +00:00
parent 4ae29ba06b
commit a4065729e2

View File

@ -250,8 +250,8 @@ $.extend(Datepicker.prototype, {
this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null); this._pos = (pos ? (pos.length ? pos : [pos.pageX, pos.pageY]) : null);
if (!this._pos) { if (!this._pos) {
var browserWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; var browserWidth = document.documentElement.clientWidth;
var browserHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; var browserHeight = document.documentElement.clientHeight;
var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft; var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
var scrollY = document.documentElement.scrollTop || document.body.scrollTop; var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
this._pos = // should use actual width/height below this._pos = // should use actual width/height below
@ -633,8 +633,8 @@ $.extend(Datepicker.prototype, {
var dpHeight = inst.dpDiv.outerHeight(); var dpHeight = inst.dpDiv.outerHeight();
var inputWidth = inst.input ? inst.input.outerWidth() : 0; var inputWidth = inst.input ? inst.input.outerWidth() : 0;
var inputHeight = inst.input ? inst.input.outerHeight() : 0; var inputHeight = inst.input ? inst.input.outerHeight() : 0;
var viewWidth = (window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth) + $(document).scrollLeft(); var viewWidth = document.documentElement.clientWidth + $(document).scrollLeft();
var viewHeight = (window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight) + $(document).scrollTop(); var viewHeight = document.documentElement.clientHeight + $(document).scrollTop();
offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0); offset.left -= (this._get(inst, 'isRTL') ? (dpWidth - inputWidth) : 0);
offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0; offset.left -= (isFixed && offset.left == inst.input.offset().left) ? $(document).scrollLeft() : 0;