我有一个div,其高度由javascript控制,假设每次调整窗口大小时都会改变div的大小。它在放大窗口时工作正常,但在缩小窗口时不起作用。可能是什么原因?我有以下代码
<script type="text/javascript">
function window_resize() {
var height = 0;
var body = window.document.body;
if (window.innerHeight) {
height = window.innerHeight;
} else if (body.parentElement.clientHeight) {
height = body.parentElement.clientHeight;
} else if (body && body.clientHeight) {
height = body.clientHeight;
}
var element = document.getElementById('test');
element.style.height = height*80/100 + 'px';
}
Sys.Application.add_init(function (sender, args) {
$addHandler(window, 'resize', window_resize);
$addHandler(window, 'onload', window_resize);
document.body.onresize = window_resize;
document.body.onload = window_resize;
});
</script>
<div id="test" style="width:1000px;padding:0px;margin:0px;">
<spc:Explorer ID="explorer" runat="server"></spc:Explorer>
</div>
答案 0 :(得分:0)
当你让窗户变小时,我猜猜div太小了。可能的原因是减小窗口大小会使滚动条出现(即使它们未显示),因此窗口大小的计算位于滚动条内。
一种解决方案是将body.style.display = 'none'
应用于正文,获取窗口的大小,然后执行body.style.display = ''
。