Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 .height()仅在调整窗口大小后使DIV可滚动_Javascript_Jquery - Fatal编程技术网

Javascript .height()仅在调整窗口大小后使DIV可滚动

Javascript .height()仅在调整窗口大小后使DIV可滚动,javascript,jquery,Javascript,Jquery,此脚本的目的是创建一个DIV,该DIV等于页面高度减去顶部部分的100% 页面如下: 在这里,它被剥离到JSFIDLE上,在那里它似乎正在工作 对我来说,(在Chrome和FF上)可滚动的div(.mid col main)只有在调整窗口大小时才可滚动(最大化、从角落拖动等) 知道我做错了什么吗 编辑:Jasper和Davin的解决方案都有效。谢谢。您需要等待DOM准备就绪,基本上您运行代码的时间太早,并且div.mid-col-main还不可用: $(function () { v

此脚本的目的是创建一个DIV,该DIV等于页面高度减去顶部部分的100%

页面如下:

在这里,它被剥离到JSFIDLE上,在那里它似乎正在工作

对我来说,(在Chrome和FF上)可滚动的div(.mid col main)只有在调整窗口大小时才可滚动(最大化、从角落拖动等)

知道我做错了什么吗


编辑:Jasper和Davin的解决方案都有效。谢谢。

您需要等待DOM准备就绪,基本上您运行代码的时间太早,并且
div.mid-col-main
还不可用:

$(function () {
    var midColTopHeight = $("div.mid-col-top").height(),
        $window         = $(window),
        $midColMain     = $('div.mid-col-main');
    $window.resize(function(){
        $midColMain.height(($window.height() - midColTopHeight));
    }).trigger('resize');
});
在这里,我将您的绑定代码放置在
文档中。就绪
事件处理程序,并在
窗口
元素上触发了一个
调整大小
事件。我还对代码进行了一些优化,以缓存不变的内容(不需要每次
resize
事件都选择相同的元素)


不必在
文档.ready
事件处理程序中运行此代码,您可以将此代码放在HTML文档的末尾(就在关闭
标记之前),这样您想要定位的元素将可用。

您需要等待DOM准备就绪,基本上,您运行代码的时间太短,而且
div.mid-col-main
还不可用:

$(function () {
    var midColTopHeight = $("div.mid-col-top").height(),
        $window         = $(window),
        $midColMain     = $('div.mid-col-main');
    $window.resize(function(){
        $midColMain.height(($window.height() - midColTopHeight));
    }).trigger('resize');
});
在这里,我将您的绑定代码放置在
文档中。就绪
事件处理程序,并在
窗口
元素上触发了一个
调整大小
事件。我还对代码进行了一些优化,以缓存不变的内容(不需要每次
resize
事件都选择相同的元素)


与在
文档.ready
事件处理程序中运行此代码不同,您可以将此代码放在HTML文档的末尾(就在关闭
标记之前),这样您想要定位的元素将可用。

您可以通过一个简单的
$(窗口)轻松解决此问题。resize()
如果您喜欢我,我不想费心去弄清楚。不,不是。您的版本不起作用,因为它实际上没有等待页面加载,您正在立即执行代码。这显然行不通,因为DOM还没有准备好。您需要将其更改为
window.onload=function(){$(window.resize();}$(窗口)轻松解决此问题。如果您和我一样,不想费心解决此问题,请调整大小()。您的版本不起作用,因为它实际上没有等待页面加载,您正在立即执行代码。这显然行不通,因为DOM还没有准备好。您需要将其更改为
window.onload=function(){$(window.resize();}