jQuery 对话框为页面增加了额外的高度

标签 jquery html css jquery-ui jquery-ui-dialog

我正在使用 jquery 对话框弹出对话框。

当对话框打开时,它会按预期显示对话框,但是它会增加页面的额外高度,并且在大多数屏幕分辨率下,这会导致浏览器上出现垂直滚动条。显然没有什么可以向下滚动看到的,所以非常希望没有动态滚动条。我试过将对话框 div 定位在整个页面上,但我无法摆脱它。它发生在 ie 和 Firefox 中。

这是代码的简化版本:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.5/jquery-ui.min.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $('#divjQueryPopup').dialog({
            autoOpen: false,
            draggable: true,
            width: 500,
            open: function (type, data) {
                $(this).parent().appendTo('form');
            }
        });
    });

    function showDialog(id) {
        $('#' + id).dialog('open');
    }

    function closeDialog(id) {
        $('#' + id).dialog('close');
    } 
</script>


<div style="height: 500px;">
    <div style="height:500px;">
        <input id="inpTest" type="button" value="Test" onclick="showDialog('divjQueryPopup');" />
    </div>

    <div id="divjQueryPopup" runat="server">
        <div style="padding:10px 20px 10px 20px">
            Lorem ipsum dolor sit amet, consectetuer adipiscing elit, 
            sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. 
            Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. 
            Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, 
            vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan et iusto odio dignissim qui blandit praesent 
            luptatum zzril delenit augue duis dolore te feugait nulla facilisi. Nam liber tempor cum soluta nobis eleifend 
            option congue nihil imperdiet doming id quod mazim placerat facer possim assum. Typi non habent claritatem insitam; 
            est usus legentis in iis qui facit eorum claritatem. Investigationes demonstraverunt lectores legere me 
            lius quod ii legunt saepius. Claritas est etiam processus dynamicus, 
            qui sequitur mutationem consuetudium lectorum. Mirum est notare quam littera gothica, 
        </div> 
    </div>
</div>

最佳答案

这是因为对话“出现”在屏幕底部,然后具有样式 position: relativetop: -whatever px 将其移动到位.此样式直接应用于 div。

Div类:
ui-dialog ui-widget ui-widget-content ui-corner-all ui-draggable ui-resizable

直接应用样式:
显示: block ; z-指数:1001;轮廓:0px 无;position:relative;高度:自动;宽度:500px;顶部:-535.5px;左:540px;

相反,将样式更改为:position: absolute,顶部为正。

您可以使用 Firebug 验证这一点。

关于jQuery 对话框为页面增加了额外的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8193887/

相关文章:

c# - 如何使整个菜单项可单击而不是仅在 asp.net 中单击文本

javascript - function() 和 $(this) 中的 each()

php - 当我使用 PHP echo 时,Font Awesome 图标没有呈现?

javascript - Fancybox 不从外部 URL 加载图像

html - 如何在 Angular 中设置我自己的 CSS 和 HTML

javascript - 如何在按下按键时暂停/播放 Javascript 循环?

Jquery - 滚动条水平移动div的backroundPosition

html - 你如何摆脱输入旁边的输入类型 ="date"箭头框?

javascript - 如何制作动画 svg 饼图

css - 在网页中使用 alpha 渲染图片