Javascript .height()仅在调整窗口大小后使DIV可滚动
此脚本的目的是创建一个DIV,该DIV等于页面高度减去顶部部分的100% 页面如下: 在这里,它被剥离到JSFIDLE上,在那里它似乎正在工作 对我来说,(在Chrome和FF上)可滚动的div(.mid col main)只有在调整窗口大小时才可滚动(最大化、从角落拖动等) 知道我做错了什么吗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
编辑: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();}哇,我是弱智,这就解决了。玩太多的版本。谢谢你,谢谢你@大卫在评论中提出的解决方案同样有效,但看起来更干净。非常感谢,谢谢@大卫在评论中提出的解决方案同样有效,但看起来更干净。非常感谢。