Asp.net 如何使模式弹出窗口与页面一起滚动其内容?

Asp.net 如何使模式弹出窗口与页面一起滚动其内容?,asp.net,ajaxcontroltoolkit,modalpopupextender,sizing,Asp.net,Ajaxcontroltoolkit,Modalpopupextender,Sizing,我有一个模式弹出窗口,当它加载的内容高于浏览器高度时,我无法向下滚动查看其余信息。相反,背景可以滚动,但弹出窗口不会 相反,我想让弹出窗口保持不变,当用户向上或向下滚动时,它将弹出窗口保持在原位,让他们滚动到内容的底部。如果你在Facebook上发了一篇超长帖子,弹出窗口会正常工作,我想知道如何使用此控件获得相同的效果。将样式溢出:自动放在容器块上。在模式弹出窗口的css中,设置modalpop的宽度,然后设置溢出:自动。这将为您提供水平滚动条。例如: .ModalPopupPanel {

我有一个模式弹出窗口,当它加载的内容高于浏览器高度时,我无法向下滚动查看其余信息。相反,背景可以滚动,但弹出窗口不会


相反,我想让弹出窗口保持不变,当用户向上或向下滚动时,它将弹出窗口保持在原位,让他们滚动到内容的底部。如果你在Facebook上发了一篇超长帖子,弹出窗口会正常工作,我想知道如何使用此控件获得相同的效果。

将样式
溢出:自动
放在容器块上。

在模式弹出窗口的css中,设置modalpop的宽度,然后设置
溢出:自动
。这将为您提供水平滚动条。例如:

.ModalPopupPanel
{
  width:900px;
  overflow:auto;
}
因此,当内容宽度超过900px时,将显示水平滚动条。
垂直滚动条也是如此,您需要在其中设置modalpop的高度。

此脚本将弹出高度设置为屏幕高度的90%,然后您可以设置溢出:自动

<script type="text/javascript">
  function pageLoad() {
      $get('<%= Panel.ClientID %>').style.height = document.documentElement.clientHeight * 0.9 + "px";
  }
    </script> 

函数pageLoad(){
$get(“”).style.height=document.documentElement.clientHeight*0.9+“px”;
}
这里是我提出的一个相关问题和我找到的解决方案


当弹出窗口打开时,您可以向body标记添加一个类以隐藏滚动条,当弹出窗口消失时将其删除,然后您的背景应为position:fixed,高度应为window.height()(使用JS动态获取),也可为overflow:auto


如果弹出窗口比背景高,你会在右边看到一个漂亮的滚动条,因为你的身体滚动条是隐藏的,所以你只能看到那个滚动条。此外,页面本身不会滚动。这就是Facebook使用图片查看器的方式。

您可以尝试使用以下方式滚动ModalPopp及其内容: 将PopupDragHandleControlID设置为指向空面板,
设置Reposition mode=“None”这将使模式固定在滚动页面时的相同位置

这里是最简单、最有效的解决方案

将该类添加到模式弹出页面

body.modal-open{
溢出:自动;

}
当你说“容器块”时,你指的是什么?你真的测试过这个吗?将两页内容放入通过模式弹出窗口生成的面板中,在面板上没有滚动条的情况下,您可以通过滚动页面查看所有内容?我这样问是因为您的建议在我尝试时不起作用。我知道我可以滚动div和面板,但这不是我要问的。如果浏览器屏幕至少为900px,这就解决了问题。对于一个带有弹出窗口的解决方案,可以覆盖整个页面,请参阅我的答案。