Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将大值设置为div';s高度_Javascript_Html_Browser_Scroll_Scrollbar - Fatal编程技术网

Javascript 将大值设置为div';s高度

Javascript 将大值设置为div';s高度,javascript,html,browser,scroll,scrollbar,Javascript,Html,Browser,Scroll,Scrollbar,我在某些web浏览器(如Firefox)中遇到高度限制的问题。我有如下javascript代码: $('#MyDiv').css("height","20000000px"); // 20,000,000 pixel height 但是我看到高度:2e+7px规则。这个问题在IE中也存在,但在谷歌chrome中一切正常,我看到高度:20000000px。如何以适用于大多数浏览器的方式为div的高度设置非常大的值 编辑:firefox在此div中没有滚动条,但google chrome有滚动条。

我在某些web浏览器(如Firefox)中遇到高度限制
的问题。我有如下javascript代码:

$('#MyDiv').css("height","20000000px"); // 20,000,000 pixel height
但是我看到高度:2e+7px规则。这个问题在IE中也存在,但在谷歌chrome中一切正常,我看到高度:20000000px。如何以适用于大多数浏览器的方式为div的高度设置非常大的值


编辑:firefox在此div中没有滚动条,但google chrome有滚动条。

如果您的文档大小不固定,您可以使用:

var height = $(document).height();
并相应地设置div容器的高度

$('#MyDiv').css("height",height);

这应该适用于所有浏览器,这不是问题。值
2e+7
20000000
相同,只是显示数字的不同方式


在某些工具中,大量数字显示在中。数字
2e+7
表示2*107。

我只想确认描述哈米德的问题。您可以使用testdiv上的
jQuery.css
尝试包含设置
height
属性的演示:

var testValues=[10000,1533916,1533917,1533918,10737418,10737419,
17895696178956971789569820000000],h,i;
对于(i=0;i”;
}
使用非常简单的HTML标记


你可以在谷歌浏览器中看到预期的结果

但是Firefox显示

以及IE10和IE11显示器

相反

顺便说一下,div上的大
高度设置将用于实现“虚拟滚动”(例如在中)。因此,用户可以看到带有大滚动条的div和其中的表。如果用户使用滚动条,那么数据页面将通过Ajax从服务器下载。div的
高度应与服务器上的数据大小相对应。如果一行表数据的高度为23px,那么IE10/IE11可以简单地模拟IE中的66692行虚拟数据(1533916/23=66692)和Firefox中的778073行虚拟数据(少于一百万行)。演示表明,需要使用更复杂的“虚拟滚动”实现,才能在设置div的
height
时不出现上述问题

也可以使用相同的内联演示:

var testValues=[10000,1533916,1533917,1533918,10737418,10737419,
17895696178956971789569820000000],h,i;
对于(i=0;i”;
}

我在实现虚拟滚动时遇到了同样的问题。我的解决方案是检测太大的数字并使用乘数

这意味着溢出内容的高度将为
realHeight/multiplier
。当我试图找出要显示的数据时,我只需要使用
scrollTop*乘数
。这对用户来说很好,因为滚动条具有最小高度


如果您可以控制效果,这将起作用。我不熟悉jqGrid,但源代码可能需要更新。

是的,你说得对。但这个符号中缺少滚动条。请阅读我的最新答案。谢谢。@hamed:那是另一回事。样式设置正确,但浏览器的设计不能处理如此大的图元。在Firefox中,我能为div设置的最大高度是17895697像素。IE中的最大值为10737418像素。感谢您的回复。在firefox中有没有办法解决这个问题?事实上,我需要在firefox中安装滚动条,比如在非常大的div上安装google chrome。不,你无法克服浏览器的限制。所有浏览器都有这样的限制。Chome对元素的大小也有限制,即使它要高得多(1.797693e+308)。如果您需要支持稍旧一点的浏览器,您可能必须使元素更小。例如,我希望IE7有一个更低的限制。@Guffa:我发布了演示IE10/IE11和Firefox中问题的演示。我回答了哈米德之前的一些问题,所以我很快描述了问题的根源。2000万?这是为了什么?我使用jqGrid插件,我需要在其中显示1000000条记录。这个插件在其容器中有一个div,该div具有“height”css属性。每个记录的高度为23px,因此div的总高度将等于23000000像素。但是firefox没有意识到这个值。它真的能在合理的时间内呈现100万条记录吗?是的。我使用虚拟滚动,网格只渲染数据的可见部分。我的问题与jqGrid无关,这是浏览器限制问题。假设您的
乘数为2,则可以获得更多信息,这不是使鼠标滚轮的滚动速度比正常速度快一倍吗?这不会让用户感到困惑吗?