我对我遇到的同等高度问题感到困惑,你可以在这个小提琴中看到:FIDDLE
代码:
$(document).ready(function() {
if ($(window).width() > 768) {
$(window).ready(function() {
var mainHeight = $('.main').height();
$(".block-wrap").height(mainHeight);
});
}else{
$('.block-wrap').css('height','auto');
}
});
$(document).ready(function() {
if ($(window).width() > 768) {
$(window).resize(function() {
var mainHeight = $('.main').height();
$(".block-wrap").height(mainHeight);
});
}else{
$('.block-wrap').css('height','auto');
}
});
基本上我想要'块包装'得到主要的高度' DIV。它一直有效,直到我使用媒体查询..' block-wrap'仍然从主要的' div,虽然我想在auto上设置它的高度,就像我在javascript中试过的那样。
如果刷新页面,则工作在768px以下,而不是调整大小。
答案 0 :(得分:1)
嗯,您的JavaScript代码存在许多问题,包括输入两次(?)的事实。以下是我改变的内容:
删除了副本。
在一个$(document).on("ready", callback);
事件处理程序中包装所有内容。
添加resize
事件监听器,以便在用户调整屏幕大小时更新.block-wrap
div
高度。没有它,height
只会在页面加载时更改,但如果用户更改窗口大小则不会更改。
<强>更新强>
resize();
事件处理程序后调用resize
函数,以在加载页面后调整.block-wrap
div
的大小。请注意,可以通过使用CSS而不依赖JavaScript来实现此结果。
这是最终的代码,经过优化和运作:
$(document).ready(function () {
function resize() {
if (window.innerWidth >= 768) {
var mainHeight = $('.main').height();
$(".block-wrap").css({
"height": mainHeight
});
} else {
$('.block-wrap').css({
'height': 'auto'
});
}
}
resize();
$(window).on("resize", function () {
resize();
});
});
我已将您的媒体查询max-width
条件调整了一个像素:
@media only screen and (max-width: 768px) { ... }