具体是一个用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' />

解决方案 »

  1.   

    友情UP,楼主可以参考google的代码,毕竟JS谁都能看得到
      

  2.   

    调整web form的位置?不太明白,能不能说的明白点?
    web form是指??窗口?
      

  3.   

    窗体是一个什么概念?winform中就是指窗口。
    webform中呢?
    指什么? 是指窗口吗?
      

  4.   

    就是页面啊  比如显示日历的时候 只能看到上面一截的话 就自动把页面望下拉高
    =======
    其实不用div,用popwindow,就不用考虑这个问题了。
      

  5.   

    关键日历控件都是写好的
    我也不能改啊 就是div
    有没有办法?
      

  6.   

    是这个意思吗?
    <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>
      

  7.   

    document.body.scrollTop
    好象不行吧
      

  8.   

    其实思路就是那样
    就是那些定位不准确!
    怎么准确表示div显示不出来!
    麻烦再看看 非常感谢幕白兄
      

  9.   

    说明:这个不符合w3c标准,仅在ie下有效.<TABLE width="100%">
    <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>
      

  10.   

    因此,要去掉网页第一行的.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      

  11.   

    谢谢答复!
    按道理你的思路是正确的 把ary[0]->ary[1]
    但是我还是没调出来的 因为我调试发现我的窗体无论怎么拉,document.body.clientHeight都等于110.
      

  12.   

    接cpp2017  
    if(ary[1]  + div.offsetHeight > document.body.clientHeight)
        {
        window.resizeBy(0,arr[1]+div.offsetHeight-document.body.clientHeight);
        }