具体是一个用div做的日历控件,很复杂,我就帖个示范:这是一个显示div的函数
popCalendar(var x,var y)
{
//
if(div没有超出窗体)
{
div.style.left = x ;
div.style.top = y ;
div.style.display "";
}
else
{
...先调整窗体
div.style.left = x ;
div.style.top = y ;
div.style.display "";
}
}
<button onclick='popCalendar(100,200)' name='btnPop' />
popCalendar(var x,var y)
{
//
if(div没有超出窗体)
{
div.style.left = x ;
div.style.top = y ;
div.style.display "";
}
else
{
...先调整窗体
div.style.left = x ;
div.style.top = y ;
div.style.display "";
}
}
<button onclick='popCalendar(100,200)' name='btnPop' />
解决方案 »
- 关于asp.net动态添加控件,求高手指点!!!!!!!
- 在mysql中如何得到表中的第1条记录?
- 值类型中的方法问题
- 在。net中能不能对于两个ORACLE数据库中结构相同的的两个表进行INSERT INTO...(SELECT..)操作??
- 想编了ip查询的程序,可是用哪一个ip数据库呢?
- 急救 aspx页面访问速度
- 新手请教:关于文件头声明后无法正确取值
- Button1_click( )的参数怎么写??
- 一个关于Session的问题
- 一个CheckBox的问题?
- 请问在asp.net中,能否将从数据库中取出的image类型的数据转为string类型?
- vs2005 LoadControl 子目录的问题
web form是指??窗口?
webform中呢?
指什么? 是指窗口吗?
=======
其实不用div,用popwindow,就不用考虑这个问题了。
我也不能改啊 就是div
有没有办法?
<BR><BR><BR><BR><BR><BR><BR><BR><BR>
<BR><BR><BR><BR><BR><BR><BR><BR><BR>
<DIV id="div1" style="display:none;width:400px;height:600px;border:solid 1px black"></DIV>
<input type="button" value="Click" onclick='popCalendar(100,200)' name='btnPop' />
<SCRIPT language="javascript">
<!--
function popCalendar( x, y)
{
//
var div = document.all.div1;
div.style.display = "";
if(div.offsetHeight+div.offsetTop>document.body.scrollTop)
{
// alert(div.offsetTop);
window.scrollTo(0,div.offsetTop);
div.style.left = x ;
div.style.top = y ;
//div.style.display = "";
}
else
{
div.style.left = x ;
div.style.top = y ;
div.style.display = "";
}
}//-->
</SCRIPT>
好象不行吧
就是那些定位不准确!
怎么准确表示div显示不出来!
麻烦再看看 非常感谢幕白兄
<TR>
<TD height="1200px">这是表格 </FONT></TD>
<TD> <DIV id="div1" style="position:absolute;display:none;width:400px;height:400px;border:solid 1px black"></DIV>
<INPUT type="button" value="Click" onclick='popCalendar(this)' name='btnPop' /></TD>
</TR>
</TABLE>
<SCRIPT language="javascript">
<!--
function popCalendar(btn)
{
//alert(document.body.offsetHeight);
var ary = GetElementPos(btn);
var div = document.all.div1;
div.style.display = "";
if(ary[0] + div.offsetHeight> document.body.offsetHeight +document.body.scrollTop)
{
document.body.scrollTop+= ary[0] + div.offsetHeight-(document.body.offsetHeight +document.body.scrollTop)+20;
}
div.style.x = ary[0];
div.style.y = ary[1];
}
//得到某一元素的绝对位置
function GetElementPos(obj)
{
var left = 0;
var top = 0;
if(obj.x)
{
left= obj.x;
top = obj.y;
}else if(obj.offsetParent)
{ while(obj.offsetParent)
{ left += obj.offsetLeft;
top += obj.offsetTop;
obj = obj.offsetParent;
}
}
var ary = new Array();
ary[0] = left;
ary[1] = top;
return ary;
}
//-->
</SCRIPT>
按道理你的思路是正确的 把ary[0]->ary[1]
但是我还是没调出来的 因为我调试发现我的窗体无论怎么拉,document.body.clientHeight都等于110.
if(ary[1] + div.offsetHeight > document.body.clientHeight)
{
window.resizeBy(0,arr[1]+div.offsetHeight-document.body.clientHeight);
}