我只想确认所描述的问题hamed。可以尝试一下演示http://jsfiddle.net/OlegKi/y4tLxx53/4/ http://jsfiddle.net/OlegKi/y4tLxx53/4/其中包含设置height
财产使用jQuery.css
在测试 div 上:
var testValues = [10000, 1533916, 1533917, 1533918, 10737418, 10737419,
17895696, 17895697, 17895698, 20000000], h, i;
for (i = 0; i < testValues.length; i++) {
h = testValues[i] + "px";
$("#test").css("height", h);
$("#log").append("<span>After setting height " + h +
", one have height: " + $("#test").css("height") +
"</span><br/>");
}
使用非常简单的 HTML 标记
<div id="log"></div>
<div id="test"></div>
在 Google Chrome 中可以看到预期的结果
但火狐显示
以及 IE10 和 IE11 显示
instead.
顺便说一下,大的设置height
on div 将用于实现“虚拟滚动”(例如在jqGrid http://www.trirand.com/blog/?page_id=6)。这样用户就可以看到带有大滚动条的 div 和里面的表格。如果用户使用滚动条,则页面数据将通过 Ajax 从服务器下载。在方式上height
div 的大小应与服务器上的数据大小相对应。如果一行表格数据的高度为23px,那么IE10/IE11可以简单地模拟IE中的66692行虚拟数据(1533916/23=66692)和Firefox中的778073行(不到100万行)。这些演示表明,需要使用更复杂的“虚拟滚动”实现,才能避免如上所述的设置问题height
of div.
您也可以使用相同的内联演示:
var testValues = [10000, 1533916, 1533917, 1533918, 10737418, 10737419,
17895696, 17895697, 17895698, 20000000], h, i;
for (i = 0; i < testValues.length; i++) {
h = testValues[i] + "px";
$("#test").css("height", h);
$("#log").append("<span>After setting height " + h +
", one have height: " + $("#test").css("height") +
"</span><br/>");
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<div id="log"></div>
<div id="test"></div>