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