Jquery 如何居中;正在加载数据&引用;jqgrid treegrid中可见屏幕中的消息?

Jquery 如何居中;正在加载数据&引用;jqgrid treegrid中可见屏幕中的消息?,jquery,jqgrid,treegrid,Jquery,Jqgrid,Treegrid,我有一个jqGrid treegrid,大约有40列,因此有一个很大的水平滚动条(取决于浏览器的大小)。问题是因为宽度太大,当页面加载或我进行筛选等操作时,您不会看到弹出的“加载消息…”,因为它位于屏幕右侧 有没有办法在当前可见屏幕中显示“加载数据…”消息中心(而不是整个页面?将加载消息的容器定位在一个固定的位置,顶部和左侧的值约为40%-60%。这样可以解决问题 应该是这样的: .loading-message-container { position : fixed; t

我有一个jqGrid treegrid,大约有40列,因此有一个很大的水平滚动条(取决于浏览器的大小)。问题是因为宽度太大,当页面加载或我进行筛选等操作时,您不会看到弹出的“加载消息…”,因为它位于屏幕右侧


有没有办法在当前可见屏幕中显示“加载数据…”消息中心(而不是整个页面?

将加载消息的容器定位在一个固定的位置,顶部和左侧的值约为40%-60%。这样可以解决问题

应该是这样的:

.loading-message-container {
     position : fixed;
     top:50%;
     left: 45%;
}

我发现你的问题是好的。同样的问题可能会有jqGrid的其他用户

我个人更喜欢使用
loadui:'block'
设置,在网格加载期间显示整个网格的覆盖。在这种情况下,问题就不那么重要了

如果更改
loadBeforeSend
中“Loading…”div的位置,可以获得更好的结果:

loadBeforeSend: function () {
    var $loadingDiv = $("#load_"+$.jgrid.jqID(this.id)),
        $bdiv = $(this).closest('.ui-jqgrid-bdiv');
    $loadingDiv.show().css({
        top: (Math.min($bdiv.height(), $(window).height()) - $loadingDiv.height())/2 + 'px',
        left: (Math.min($bdiv.width(), $(window).width()) - $loadingDiv.width())/2 + 'px'
    });
}
在我看来,最好修改jqGrid的基本代码(确切地说是修改函数代码),使上述“加载…”div的位置始终发生变化

已更新:更改“加载…”div位置的更好实现可能是

var gridIdAsSelector = $.jgrid.jqID(this.id),
    $loadingDiv = $("#load_" + gridIdAsSelector),
    $gbox = $("#gbox_" + gridIdAsSelector);
$loadingDiv.show().css({
    top: (Math.min($gbox.height(), $(window).height()) - $loadingDiv.outerHeight())/2 + 'px',
    left: (Math.min($gbox.width(), $(window).width()) - $loadingDiv.outerWidth())/2 + 'px'
});
代码应像以前一样放置在
loadBeforeSend

更新2:演示该想法。我将代码包含在
加载面板
之外,仅用于演示其工作原理。在演示中,“加载”div保持可见,并且在使用
加载ui:'block'
选项的情况下,我还显示了显示的覆盖:


谢谢..这很好用。我还添加了loadUI:block,这两个东西结合在一起可以让用户在加载数据时更加清楚!!