在使用
http://www.cnblogs.com/junjie94wan/archive/2011/08/24/2152637.html 的第2种日历当中,发现日历在extpb.net的应用中存在Y坐标定位不准确的现象,故做下如下修改:
原来的2代码:
-
...
-
-
while (tt = tt.offsetParent){ttop+=tt.offsetTop; tleft+=tt.offsetLeft;}
-
dads.top = (ttyp=="image")? ttop+thei : ttop+thei+6;
-
-
...
修改为:
-
while (tt = tt.offsetParent) {
-
ttop += tt.offsetTop - tt.scrollTop;
-
tleft += tt.offsetLeft;
-
}
-
var ifrdiv_top = (ttyp == "image") ? ttop + thei : ttop + thei + 6;
-
//日历控件的高度
-
var ifrdiv_hei = parseInt(document.all.endDateLayer.height);
-
//浏览器的高度
-
var br_hei = getViewportHeight();
-
if (br_hei - ifrdiv_top < ifrdiv_hei) ifrdiv_top -= (ifrdiv_hei + thei + 8); //移到TT控件的上面显示
-
dads.top = ifrdiv_top;
其中增加了一个获取浏览器高度的函数 getViewportHeight() ,定义如下:
-
function getViewportHeight()
-
{
-
if (document.compatMode == "BackCompat")
-
return document.body.clientHeight;
-
else return document.documentElement.clientHeight;
-
}
同时将如下对控件大小的修改直接写到iframe的定义里:
//--------------------------------------
// add by cd.NET 2008-05-28
if (dads != null) {
dads.width = '162px';
dads.height = '211px';
}
//--------------------------------------
document.writeln('
');
====>
document.writeln('
');
效果:
a) 下部页面空间够时在下面显示日历 b) 下部页面空间不够时在上面显示日历
阅读(1352) | 评论(0) | 转发(0) |