Javascript 媒体查询更改时销毁Jquery函数
希望你能帮助我 我在论坛上搜索过,我想这是一个特例 我正在构建的项目支持媒体查询(响应式),我有3列,有时4列需要在等高。我已经用Jquery开发了一个脚本,它非常有效。见下文Javascript 媒体查询更改时销毁Jquery函数,javascript,jquery,media-queries,enquire.js,Javascript,Jquery,Media Queries,Enquire.js,希望你能帮助我 我在论坛上搜索过,我想这是一个特例 我正在构建的项目支持媒体查询(响应式),我有3列,有时4列需要在等高。我已经用Jquery开发了一个脚本,它非常有效。见下文 var maxHeight = 0; function setHeight(column) { $(window).load(function () { column = $(column); column.each(function () { if ($(
var maxHeight = 0;
function setHeight(column) {
$(window).load(function () {
column = $(column);
column.each(function () {
if ($(this).height() > maxHeight) {
maxHeight = $(this).height();
}
});
column.height(maxHeight);
});
}
setHeight('.package-container .package-3');
但是,当我要使用767px以下的移动版本时,我如何在不刷新页面的情况下销毁这个setHeight()功能
另一种选择是,我可以使用inquire.js、javascript媒体查询在下面执行此操作,但如果我直接从桌面/平板电脑转到移动设备,我无法在不刷新的情况下使其工作。像下面这样
enquire.register("(max-width:767px)", {
match : function() {
setHeight(null);
}
}).listen();
以下是我在“移动优先”方法中要做的,你不必担心“破坏”任何东西,只要将高度设置为“自动”:
enquire.register("screen and (min-width : 768px)", {
match : function() {
// set equal height for columns
setHeight('.package-container .package-3');
},
unmatch : function() {
// set auto height
$('.package-container .package-3').height("auto");
}
}).listen();
当你低于767px时,你就不能不调用
setHeight
吗?想想看,在移动版本中:列不存在,所有的东西都叠在一起。与此同时,CSS查询帮助了我@media(最大宽度:767px){.package content{height:100%!important;}}}
是在窗口调整大小事件上调用的setHeight函数,还是在加载时仅调用一次?使用$(window).load()加载一次,我可以使用条件尝试$(window).resize()。谢谢你的提醒。我之所以使用$(window).load(),是因为它在所有图像下载后都能为我提供准确的测量。嘿,约翰,谢谢你帮我解答一些询问问题:)省去了我的回答,这总是很好的!