jquery datepicker を介して追加された2つのテキストボックスを含むページがあります
function setDatepickers() {
$('.datepicker').datepicker();
$('.datepicker').attr('date', 'date');
}
ページの下部にテキスト ボックスがあり、テキスト ボックスを表示するには少し下にスクロールする必要があります。テキストボックスをクリックすると、日付ピッカーが開きますが、入力テキストボックスの少し上など、さまざまな垂直位置にあり、日付ピッカーを表示するために上にスクロールする必要がある場合があります。これは IE8 でのみ発生し、Firefox では発生しません。Firefox 3.6.3 は完璧で、ほとんど入力テキストボックスに接続されています。
使用されている jquery のバージョンは次のとおりです。 jquery v1.4.1 jquery UI 1.8.5
その中の checkoffset メソッドから値を取得しようとしたところ、次の結果が見つかりました。
_checkOffset: function (a, c, d) {
var f = a.dpDiv.outerWidth(),
j = a.dpDiv.outerHeight(),
k = a.input ? a.input.outerWidth() : 0,
l = a.input ? a.input.outerHeight() : 0,
m = document.documentElement.clientWidth + b(document).scrollLeft(),
o = document.documentElement.clientHeight + b(document).scrollTop();
alert(j); alert(k); alert(l); alert(m); alert(o);
c.left -= this._get(a, "isRTL") ? f - k : 0;
c.left -= d && c.left == a.input.offset().left ? b(document).scrollLeft() : 0;
c.top -= d && c.top == a.input.offset().top + l ? b(document).scrollTop() : 0;
c.left -= Math.min(c.left, c.left + f > m && m > f ? Math.abs(c.left + f - m) : 0);
c.top -= Math.min(c.top, c.top + j > o && o > j ? Math.abs(j + l) : 0);
return c
},
アラートの結果は次のとおりです。
IE8: 159 135 25 1132 359
Firefox: 159 136 25 1136 843
Final Div の位置: Firefox: Top 582 Left 98
IE: 上 98、左 96
Top プロパティが IE8 で正しく設定されていないと思いますが、これを修正するために何を変更する必要があるかわかりませんか? どんな助けでも大歓迎です。
ありがとう、アシシュ・ジェイン